You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ro...@apache.org on 2015/11/20 13:42:43 UTC

svn commit: r1715344 [2/2] - in /lucene/dev/branches/branch_5x: ./ solr/ solr/contrib/ solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/ solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/ solr/contrib/...

Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/TestZkChroot.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/TestZkChroot.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/TestZkChroot.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/TestZkChroot.java Fri Nov 20 12:42:42 2015
@@ -17,7 +17,8 @@ package org.apache.solr.cloud;
  * limitations under the License.
  */
 
-import java.io.File;
+import java.nio.file.Path;
+import java.nio.file.Paths;
 
 import org.apache.solr.SolrJettyTestBase;
 import org.apache.solr.SolrTestCaseJ4;
@@ -34,7 +35,7 @@ import org.slf4j.LoggerFactory;
 public class TestZkChroot extends SolrTestCaseJ4 {
   protected static Logger log = LoggerFactory.getLogger(TestZkChroot.class);
   protected CoreContainer cores = null;
-  private String home;
+  private Path home;
   
   protected ZkTestServer zkServer;
   protected String zkDir;
@@ -47,7 +48,7 @@ public class TestZkChroot extends SolrTe
     zkDir = createTempDir("zkData").toFile().getAbsolutePath();
     zkServer = new ZkTestServer(zkDir);
     zkServer.run();
-    home = SolrJettyTestBase.legacyExampleCollection1SolrHome();
+    home = Paths.get(SolrJettyTestBase.legacyExampleCollection1SolrHome());
     
   }
   
@@ -79,7 +80,7 @@ public class TestZkChroot extends SolrTe
     SolrZkClient zkClient2 = null;
     
     try {
-      cores = CoreContainer.createAndLoad(home, new File(home, "solr.xml"));
+      cores = CoreContainer.createAndLoad(home);
       zkClient = cores.getZkController().getZkClient();
       
       assertTrue(zkClient.exists("/clusterstate.json", true));
@@ -110,7 +111,7 @@ public class TestZkChroot extends SolrTe
           AbstractZkTestCase.TIMEOUT);
       assertFalse("Path '" + chroot + "' should not exist before the test",
           zkClient.exists(chroot, true));
-      cores = CoreContainer.createAndLoad(home, new File(home, "solr.xml"));
+      cores = CoreContainer.createAndLoad(home);
       fail("There should be a zk exception, as the initial path doesn't exist");
     } catch (ZooKeeperException e) {
       // expected
@@ -138,7 +139,7 @@ public class TestZkChroot extends SolrTe
           AbstractZkTestCase.TIMEOUT);
       assertFalse("Path '" + chroot + "' should not exist before the test",
           zkClient.exists(chroot, true));
-      cores = CoreContainer.createAndLoad(home, new File(home, "solr.xml"));
+      cores = CoreContainer.createAndLoad(home);
       assertTrue(
           "solrconfig.xml should have been uploaded to zk to the correct config directory",
           zkClient.exists(chroot + ZkConfigManager.CONFIGS_ZKNODE + "/"
@@ -164,7 +165,7 @@ public class TestZkChroot extends SolrTe
       assertTrue(zkClient.exists(chroot, true));
       assertFalse(zkClient.exists(chroot + "/clusterstate.json", true));
       
-      cores = CoreContainer.createAndLoad(home, new File(home, "solr.xml"));
+      cores = CoreContainer.createAndLoad(home);
       assertTrue(zkClient.exists(chroot + "/clusterstate.json", true));
     } finally {
       if (cores != null) cores.shutdown();

Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/ResourceLoaderTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/ResourceLoaderTest.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/ResourceLoaderTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/ResourceLoaderTest.java Fri Nov 20 12:42:42 2015
@@ -17,74 +17,59 @@
 
 package org.apache.solr.core;
 
-import junit.framework.Assert;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.CharacterCodingException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.jar.JarEntry;
+import java.util.jar.JarOutputStream;
 
+import junit.framework.Assert;
 import org.apache.lucene.analysis.TokenStream;
 import org.apache.lucene.analysis.core.KeywordTokenizerFactory;
 import org.apache.lucene.analysis.ngram.NGramFilterFactory;
-import org.apache.lucene.util.IOUtils;
+import org.apache.lucene.analysis.util.ResourceLoaderAware;
+import org.apache.lucene.analysis.util.TokenFilterFactory;
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.handler.admin.LukeRequestHandler;
 import org.apache.solr.handler.component.FacetComponent;
 import org.apache.solr.response.JSONResponseWriter;
-import org.apache.lucene.analysis.util.ResourceLoaderAware;
-import org.apache.lucene.analysis.util.TokenFilterFactory;
 import org.apache.solr.util.plugin.SolrCoreAware;
 
-import java.io.File;
-import java.io.FileFilter;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.charset.CharacterCodingException;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.jar.JarEntry;
-import java.util.jar.JarOutputStream;
-
 import static org.apache.solr.core.SolrResourceLoader.assertAwareCompatibility;
+import static org.hamcrest.core.Is.is;
 
-public class ResourceLoaderTest extends SolrTestCaseJ4 
-{
-  public void testInstanceDir() throws Exception {
-    SolrResourceLoader loader = new SolrResourceLoader(null);
-    String instDir = loader.getInstanceDir();
-    assertTrue(instDir + " is not equal to " + "solr/", instDir.equals("solr/") == true);
-    loader.close();
+public class ResourceLoaderTest extends SolrTestCaseJ4 {
 
-    loader = new SolrResourceLoader("solr");
-    instDir = loader.getInstanceDir();
-    assertTrue(instDir + " is not equal to " + "solr/", instDir.equals("solr" + File.separator) == true);
-    loader.close();
+  public void testInstanceDir() throws Exception {
+    try (SolrResourceLoader loader = new SolrResourceLoader()) {
+      assertThat(loader.getInstancePath(), is(Paths.get("solr").toAbsolutePath()));
+    }
   }
 
   public void testEscapeInstanceDir() throws Exception {
-    File temp = createTempDir("testEscapeInstanceDir").toFile();
-    try {
-      temp.mkdirs();
-      new File(temp, "dummy.txt").createNewFile();
-      File instanceDir = new File(temp, "instance");
-      instanceDir.mkdir();
-      new File(instanceDir, "conf").mkdir();
-      SolrResourceLoader loader = new SolrResourceLoader(instanceDir.getAbsolutePath());
-      try {
-        loader.openResource("../../dummy.txt").close();
-        fail();
-      } catch (IOException ioe) {
-        assertTrue(ioe.getMessage().startsWith("For security reasons, SolrResourceLoader"));
-      }
-      loader.close();
-    } finally {
-      IOUtils.rm(temp.toPath());
+
+    Path temp = createTempDir("testEscapeInstanceDir");
+    Files.write(temp.resolve("dummy.txt"), new byte[]{});
+    Path instanceDir = temp.resolve("instance");
+    Files.createDirectories(instanceDir.resolve("conf"));
+    try (SolrResourceLoader loader = new SolrResourceLoader(instanceDir)) {
+      loader.openResource("../../dummy.txt").close();
+      fail();
+    } catch (IOException ioe) {
+      assertTrue(ioe.getMessage().contains("is outside resource loader dir"));
     }
+
   }
 
-  public void testAwareCompatibility() throws Exception
-  {
-    SolrResourceLoader loader = new SolrResourceLoader( "." );
+  public void testAwareCompatibility() throws Exception {
     
     Class<?> clazz = ResourceLoaderAware.class;
     // Check ResourceLoaderAware valid objects
@@ -126,13 +111,12 @@ public class ResourceLoaderTest extends
       }
       catch( SolrException ex ) { } // OK
     }
-    
-    loader.close();
+
   }
   
   public void testBOMMarkers() throws Exception {
     final String fileWithBom = "stopwithbom.txt";
-    SolrResourceLoader loader = new SolrResourceLoader("solr/collection1");
+    SolrResourceLoader loader = new SolrResourceLoader(TEST_PATH().resolve("collection1"));
 
     // preliminary sanity check
     InputStream bomStream = loader.openResource(fileWithBom);
@@ -160,7 +144,7 @@ public class ResourceLoaderTest extends
   
   public void testWrongEncoding() throws Exception {
     String wrongEncoding = "stopwordsWrongEncoding.txt";
-    SolrResourceLoader loader = new SolrResourceLoader("solr/collection1");
+    SolrResourceLoader loader = new SolrResourceLoader(TEST_PATH().resolve("collection1"));
     // ensure we get our exception
     try {
       loader.getLines(wrongEncoding);
@@ -172,48 +156,41 @@ public class ResourceLoaderTest extends
   }
 
   public void testClassLoaderLibs() throws Exception {
-    File tmpRoot = createTempDir("testClassLoaderLibs").toFile();
+    Path tmpRoot = createTempDir("testClassLoaderLibs");
+
+    Path lib = tmpRoot.resolve("lib");
+    Files.createDirectories(lib);
+
+    try (JarOutputStream os = new JarOutputStream(Files.newOutputStream(lib.resolve("jar1.jar")))) {
+      os.putNextEntry(new JarEntry("aLibFile"));
+      os.closeEntry();
+    }
 
-    File lib = new File(tmpRoot, "lib");
-    lib.mkdirs();
+    Path otherLib = tmpRoot.resolve("otherLib");
+    Files.createDirectories(otherLib);
 
-    JarOutputStream jar1 = new JarOutputStream(new FileOutputStream(new File(lib, "jar1.jar")));
-    jar1.putNextEntry(new JarEntry("aLibFile"));
-    jar1.closeEntry();
-    jar1.close();
-
-    File otherLib = new File(tmpRoot, "otherLib");
-    otherLib.mkdirs();
-
-    JarOutputStream jar2 = new JarOutputStream(new FileOutputStream(new File(otherLib, "jar2.jar")));
-    jar2.putNextEntry(new JarEntry("explicitFile"));
-    jar2.closeEntry();
-    jar2.close();
-    JarOutputStream jar3 = new JarOutputStream(new FileOutputStream(new File(otherLib, "jar3.jar")));
-    jar3.putNextEntry(new JarEntry("otherFile"));
-    jar3.closeEntry();
-    jar3.close();
+    try (JarOutputStream os = new JarOutputStream(Files.newOutputStream(otherLib.resolve("jar2.jar")))) {
+      os.putNextEntry(new JarEntry("explicitFile"));
+      os.closeEntry();
+    }
+    try (JarOutputStream os = new JarOutputStream(Files.newOutputStream(otherLib.resolve("jar3.jar")))) {
+      os.putNextEntry(new JarEntry("otherFile"));
+      os.closeEntry();
+    }
 
-    SolrResourceLoader loader = new SolrResourceLoader(tmpRoot.getAbsolutePath());
+    SolrResourceLoader loader = new SolrResourceLoader(tmpRoot);
 
     // ./lib is accessible by default
     assertNotNull(loader.getClassLoader().getResource("aLibFile"));
 
-    // file filter works (and doesn't add other files in the same dir)
-    final File explicitFileJar = new File(otherLib, "jar2.jar").getAbsoluteFile();
-    loader.addToClassLoader("otherLib",
-        new FileFilter() {
-          @Override
-          public boolean accept(File pathname) {
-            return pathname.equals(explicitFileJar);
-          }
-        }, false);
+    // add inidividual jars from other paths
+    loader.addToClassLoader(otherLib.resolve("jar2.jar").toUri().toURL());
+
     assertNotNull(loader.getClassLoader().getResource("explicitFile"));
     assertNull(loader.getClassLoader().getResource("otherFile"));
 
-
-    // null file filter means accept all (making otherFile accessible)
-    loader.addToClassLoader("otherLib", null, false);
+    // add all jars from another path
+    loader.addToClassLoader(SolrResourceLoader.getURLs(otherLib));
     assertNotNull(loader.getClassLoader().getResource("otherFile"));
     loader.close();
   }
@@ -231,9 +208,10 @@ public class ResourceLoaderTest extends
     }
     
   }
-  
+
+  @SuppressWarnings("deprecation")
   public void testLoadDeprecatedFactory() throws Exception {
-    SolrResourceLoader loader = new SolrResourceLoader("solr/collection1");
+    SolrResourceLoader loader = new SolrResourceLoader(Paths.get("solr/collection1"));
     // ensure we get our exception
     loader.newInstance(DeprecatedTokenFilterFactory.class.getName(), TokenFilterFactory.class, null,
         new Class[] { Map.class }, new Object[] { new HashMap<String,String>() });

Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestArbitraryIndexDir.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestArbitraryIndexDir.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestArbitraryIndexDir.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestArbitraryIndexDir.java Fri Nov 20 12:42:42 2015
@@ -16,6 +16,7 @@
  */
 package org.apache.solr.core;
 
+import javax.xml.parsers.ParserConfigurationException;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
@@ -24,8 +25,7 @@ import java.io.Writer;
 import java.nio.charset.StandardCharsets;
 import java.util.Properties;
 
-import javax.xml.parsers.ParserConfigurationException;
-
+import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
 import org.apache.lucene.analysis.standard.StandardAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
@@ -35,56 +35,35 @@ import org.apache.lucene.index.IndexWrit
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.IOUtils;
 import org.apache.solr.common.SolrException;
-import org.apache.solr.common.params.CommonParams;
 import org.apache.solr.handler.IndexFetcher;
 import org.apache.solr.util.AbstractSolrTestCase;
-import org.apache.solr.util.TestHarness;
-import org.junit.AfterClass;
 import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
+import org.junit.rules.TestRule;
 import org.xml.sax.SAXException;
 
 /**
  *
  */
-public class TestArbitraryIndexDir extends AbstractSolrTestCase{
+public class TestArbitraryIndexDir extends AbstractSolrTestCase {
+
+  @Rule
+  public TestRule testRules = new SystemPropertiesRestoreRule();
 
   // TODO: fix this test to not require FSDirectory
-  static String savedFactory;
+
   @BeforeClass
   public static void beforeClass() {
     // this test wants to start solr, and then open a separate indexwriter of its own on the same dir.
     System.setProperty("enable.update.log", "false"); // schema12 doesn't support _version_
-    savedFactory = System.getProperty("solr.DirectoryFactory");
     System.setProperty("solr.directoryFactory", "org.apache.solr.core.MockFSDirectoryFactory");
   }
-  @AfterClass
-  public static void afterClass() {
-    if (savedFactory == null) {
-      System.clearProperty("solr.directoryFactory");
-    } else {
-      System.setProperty("solr.directoryFactory", savedFactory);
-    }
-  }
 
   @Override
   public void setUp() throws Exception {
     super.setUp();
-    
-    File tmpDataDir = createTempDir().toFile();
-
-    solrConfig = TestHarness.createConfig(getSolrHome(), "solrconfig.xml");
-    h = new TestHarness( tmpDataDir.getAbsolutePath(),
-        solrConfig,
-        "schema12.xml");
-    lrf = h.getRequestFactory
-    ("standard",0,20,CommonParams.VERSION,"2.2");
-  }
-  
-  @Override
-  public void tearDown() throws Exception {
-    super.tearDown();
-
+    initCore("solrconfig.xml", "schema12.xml");
   }
 
   @Test

Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestConfig.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestConfig.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestConfig.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestConfig.java Fri Nov 20 12:42:42 2015
@@ -17,6 +17,10 @@
 
 package org.apache.solr.core;
 
+import javax.xml.xpath.XPathConstants;
+import java.io.IOException;
+import java.io.InputStream;
+
 import org.apache.lucene.index.ConcurrentMergeScheduler;
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.index.TieredMergePolicy;
@@ -31,10 +35,6 @@ import org.junit.Test;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
-import javax.xml.xpath.XPathConstants;
-import java.io.IOException;
-import java.io.InputStream;
-
 public class TestConfig extends SolrTestCaseJ4 {
 
   @BeforeClass
@@ -113,7 +113,7 @@ public class TestConfig extends SolrTest
     int numDefaultsTested = 0;
     int numNullDefaults = 0;
 
-    SolrConfig sc = new SolrConfig(new SolrResourceLoader("solr/collection1"), "solrconfig-defaults.xml", null);
+    SolrConfig sc = new SolrConfig(new SolrResourceLoader(TEST_PATH().resolve("collection1")), "solrconfig-defaults.xml", null);
     SolrIndexConfig sic = sc.indexConfig;
 
     ++numDefaultsTested; assertEquals("default useCompoundFile", false, sic.getUseCompoundFile());
@@ -151,7 +151,7 @@ public class TestConfig extends SolrTest
   // sanity check that sys propertis are working as expected
   public void testSanityCheckTestSysPropsAreUsed() throws Exception {
 
-    SolrConfig sc = new SolrConfig(new SolrResourceLoader("solr/collection1"), "solrconfig-basic.xml", null);
+    SolrConfig sc = new SolrConfig(new SolrResourceLoader(TEST_PATH().resolve("collection1")), "solrconfig-basic.xml", null);
     SolrIndexConfig sic = sc.indexConfig;
 
     assertEquals("ramBufferSizeMB sysprop", 

Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestConfigSetProperties.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestConfigSetProperties.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestConfigSetProperties.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestConfigSetProperties.java Fri Nov 20 12:42:42 2015
@@ -17,22 +17,23 @@ package org.apache.solr.core;
  * limitations under the License.
  */
 
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.Map;
+
 import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
 import com.google.common.collect.ImmutableMap;
-import java.util.Map;
-import org.apache.commons.io.FileUtils;
+import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.SolrException.ErrorCode;
 import org.apache.solr.common.util.NamedList;
-import org.apache.solr.SolrTestCaseJ4;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.RuleChain;
 import org.junit.rules.TestRule;
 import org.noggit.JSONUtil;
 
-import java.io.File;
-
 public class TestConfigSetProperties extends SolrTestCaseJ4 {
 
   @Rule
@@ -80,14 +81,14 @@ public class TestConfigSetProperties ext
   }
 
   private NamedList createConfigSetProps(String props) throws Exception {
-    File testDirectory = createTempDir().toFile();
+    Path testDirectory = createTempDir();
     String filename = "configsetprops.json";
     if (props != null) {
-      File confDir = new File(testDirectory, "conf");
-      FileUtils.forceMkdir(confDir);
-      FileUtils.write(new File(confDir, filename), new StringBuilder(props));
+      Path confDir = testDirectory.resolve("conf");
+      Files.createDirectories(confDir);
+      Files.write(confDir.resolve(filename), props.getBytes(StandardCharsets.UTF_8));
     }
-    SolrResourceLoader loader = new SolrResourceLoader(testDirectory.getAbsolutePath());
+    SolrResourceLoader loader = new SolrResourceLoader(testDirectory);
     return ConfigSetProperties.readFromResourceLoader(loader, filename);
   }
 }

Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestConfigSets.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestConfigSets.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestConfigSets.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestConfigSets.java Fri Nov 20 12:42:42 2015
@@ -19,6 +19,7 @@ package org.apache.solr.core;
 
 import java.io.File;
 import java.io.IOException;
+import java.nio.file.Path;
 import java.nio.file.Paths;
 
 import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
@@ -42,11 +43,11 @@ public class TestConfigSets extends Solr
   public static String solrxml = "<solr><str name=\"configSetBaseDir\">${configsets:configsets}</str></solr>";
 
   public CoreContainer setupContainer(String configSetsBaseDir) {
-    File testDirectory = createTempDir().toFile();
+    Path testDirectory = createTempDir();
 
     System.setProperty("configsets", configSetsBaseDir);
 
-    SolrResourceLoader loader = new SolrResourceLoader(testDirectory.getAbsolutePath());
+    SolrResourceLoader loader = new SolrResourceLoader(testDirectory);
     CoreContainer container = new CoreContainer(SolrXmlConfig.fromString(loader, solrxml));
     container.load();
 
@@ -55,7 +56,7 @@ public class TestConfigSets extends Solr
 
   @Test
   public void testDefaultConfigSetBasePathResolution() throws IOException {
-    try (SolrResourceLoader loader = new SolrResourceLoader(new File("/path/to/solr/home").getAbsolutePath())) {
+    try (SolrResourceLoader loader = new SolrResourceLoader(Paths.get("/path/to/solr/home"))) {
 
       NodeConfig config
           = SolrXmlConfig.fromString(loader, "<solr><str name=\"configSetBaseDir\">configsets</str></solr>");
@@ -72,12 +73,13 @@ public class TestConfigSets extends Solr
   public void testConfigSetServiceFindsConfigSets() {
     CoreContainer container = null;
     try {
-      container = setupContainer(getFile("solr/configsets").getAbsolutePath());
-      String testDirectory = new File(container.getResourceLoader().getInstanceDir()).getAbsolutePath();
+      container = setupContainer(TEST_PATH().resolve("configsets").toString());
+      Path testDirectory = container.getResourceLoader().getInstancePath();
 
-      SolrCore core1 = container.create(new CoreDescriptor(container, "core1", testDirectory + "core1", "configSet", "configset-2"));
+      SolrCore core1 = container.create(new CoreDescriptor(container, "core1", testDirectory.resolve("core1").toString(),
+                                                "configSet", "configset-2"));
       assertThat(core1.getCoreDescriptor().getName(), is("core1"));
-      assertThat(core1.getDataDir(), is(testDirectory + "core1" + File.separator + "data" + File.separator));
+      assertThat(Paths.get(core1.getDataDir()).toString(), is(testDirectory.resolve("core1").resolve("data").toString()));
     }
     finally {
       if (container != null)
@@ -90,9 +92,9 @@ public class TestConfigSets extends Solr
     CoreContainer container = null;
     try {
       container = setupContainer(getFile("solr/configsets").getAbsolutePath());
-      String testDirectory = container.getResourceLoader().getInstanceDir();
+      Path testDirectory = container.getResourceLoader().getInstancePath();
 
-      container.create(new CoreDescriptor(container, "core1", testDirectory + "/core1", "configSet", "nonexistent"));
+      container.create(new CoreDescriptor(container, "core1", testDirectory.resolve("core1").toString(), "configSet", "nonexistent"));
       fail("Expected core creation to fail");
     }
     catch (Exception e) {
@@ -116,7 +118,7 @@ public class TestConfigSets extends Solr
     String csd = configSetsDir.getAbsolutePath();
     System.setProperty("configsets", csd);
 
-    SolrResourceLoader loader = new SolrResourceLoader(testDirectory.getAbsolutePath());
+    SolrResourceLoader loader = new SolrResourceLoader(testDirectory.toPath());
     CoreContainer container = new CoreContainer(SolrXmlConfig.fromString(loader, solrxml));
     container.load();
 

Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java Fri Nov 20 12:42:42 2015
@@ -17,19 +17,6 @@
 
 package org.apache.solr.core;
 
-import org.apache.commons.io.FileUtils;
-import org.apache.lucene.util.IOUtils;
-import org.apache.solr.SolrTestCaseJ4;
-import org.apache.solr.common.SolrException;
-import org.apache.solr.handler.admin.CollectionsHandler;
-import org.apache.solr.handler.admin.CoreAdminHandler;
-import org.apache.solr.handler.admin.InfoHandler;
-import org.apache.solr.handler.admin.ConfigSetsHandler;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.xml.sax.SAXParseException;
-
 import java.io.File;
 import java.io.FileOutputStream;
 import java.nio.file.Path;
@@ -42,6 +29,19 @@ import java.util.jar.JarEntry;
 import java.util.jar.JarOutputStream;
 import java.util.regex.Pattern;
 
+import org.apache.commons.io.FileUtils;
+import org.apache.lucene.util.IOUtils;
+import org.apache.solr.SolrTestCaseJ4;
+import org.apache.solr.common.SolrException;
+import org.apache.solr.handler.admin.CollectionsHandler;
+import org.apache.solr.handler.admin.ConfigSetsHandler;
+import org.apache.solr.handler.admin.CoreAdminHandler;
+import org.apache.solr.handler.admin.InfoHandler;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.xml.sax.SAXParseException;
+
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.CoreMatchers.nullValue;
 import static org.hamcrest.core.Is.is;
@@ -75,7 +75,7 @@ public class TestCoreContainer extends S
   }
 
   private CoreContainer init(Path homeDirectory, String xml) throws Exception {
-    SolrResourceLoader loader = new SolrResourceLoader(homeDirectory.toString());
+    SolrResourceLoader loader = new SolrResourceLoader(homeDirectory);
     CoreContainer ret = new CoreContainer(SolrXmlConfig.fromString(loader, xml));
     ret.load();
     return ret;
@@ -213,7 +213,7 @@ public class TestCoreContainer extends S
 
     MockCoresLocator cl = new MockCoresLocator();
 
-    SolrResourceLoader resourceLoader = new SolrResourceLoader(createTempDir().toString());
+    SolrResourceLoader resourceLoader = new SolrResourceLoader(createTempDir());
 
     System.setProperty("configsets", getFile("solr/configsets").getAbsolutePath());
 
@@ -469,7 +469,7 @@ public class TestCoreContainer extends S
     // init the  CoreContainer with the mix of ok/bad cores
     MockCoresLocator cl = new MockCoresLocator();
 
-    SolrResourceLoader resourceLoader = new SolrResourceLoader(createTempDir().toString());
+    SolrResourceLoader resourceLoader = new SolrResourceLoader(createTempDir());
 
     System.setProperty("configsets", getFile("solr/configsets").getAbsolutePath());
 

Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java Fri Nov 20 12:42:42 2015
@@ -457,7 +457,7 @@ public class TestCoreDiscovery extends S
   @Test
   public void testRootDirectoryResolution() {
 
-    SolrResourceLoader loader = new SolrResourceLoader(solrHomeDirectory.getAbsolutePath());
+    SolrResourceLoader loader = new SolrResourceLoader(solrHomeDirectory.toPath());
 
     NodeConfig config = SolrXmlConfig.fromString(loader, "<solr><str name=\"coreRootDirectory\">relative</str></solr>");
     assertThat(config.getCoreRootDirectory().toString(), containsString(solrHomeDirectory.getAbsolutePath()));

Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestLazyCores.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestLazyCores.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestLazyCores.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestLazyCores.java Fri Nov 20 12:42:42 2015
@@ -80,7 +80,7 @@ public class TestLazyCores extends SolrT
       copyMinConf(new File(solrHomeDirectory, "collection" + idx));
     }
 
-    SolrResourceLoader loader = new SolrResourceLoader(solrHomeDirectory.getAbsolutePath());
+    SolrResourceLoader loader = new SolrResourceLoader(solrHomeDirectory.toPath());
     NodeConfig config = new NodeConfig.NodeConfigBuilder("testNode", loader).setTransientCacheSize(4).build();
     return createCoreContainer(config, testCores);
   }
@@ -559,12 +559,8 @@ public class TestLazyCores extends SolrT
       writeCustomConfig(coreName, min_config, bad_schema, rand_snip);
     }
 
-    // Write the solr.xml file. Cute how minimal it can be now....
-    File solrXml = new File(solrHomeDirectory, "solr.xml");
-    FileUtils.write(solrXml, "<solr/>", Charsets.UTF_8.toString());
-
-    SolrResourceLoader loader = new SolrResourceLoader(solrHomeDirectory.getAbsolutePath());
-    NodeConfig config = SolrXmlConfig.fromFile(loader, solrXml);
+    SolrResourceLoader loader = new SolrResourceLoader(solrHomeDirectory.toPath());
+    NodeConfig config = SolrXmlConfig.fromString(loader, "<solr/>");
 
     // OK this should succeed, but at the end we should have recorded a series of errors.
     return createCoreContainer(config, new CorePropertiesLocator(config.getCoreRootDirectory()));

Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestShardHandlerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestShardHandlerFactory.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestShardHandlerFactory.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestShardHandlerFactory.java Fri Nov 20 12:42:42 2015
@@ -17,19 +17,21 @@
 
 package org.apache.solr.core;
 
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.handler.component.ShardHandlerFactory;
 
-import java.io.File;
-
 /**
  * Tests specifying a custom ShardHandlerFactory
  */
 public class TestShardHandlerFactory extends SolrTestCaseJ4 {
 
   public void testXML() throws Exception {
-    CoreContainer cc = CoreContainer.createAndLoad(TEST_HOME(), new File(TEST_HOME(), "solr-shardhandler.xml"));
+    Path home = Paths.get(TEST_HOME());
+    CoreContainer cc = CoreContainer.createAndLoad(home, home.resolve("solr-shardhandler.xml"));
     ShardHandlerFactory factory = cc.getShardHandlerFactory();
     assertTrue(factory instanceof MockShardHandlerFactory);
     NamedList args = ((MockShardHandlerFactory)factory).args;

Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestSolrXml.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestSolrXml.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestSolrXml.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestSolrXml.java Fri Nov 20 12:42:42 2015
@@ -51,7 +51,7 @@ public class TestSolrXml extends SolrTes
   @BeforeClass
   public static void setupLoader() throws Exception {
     solrHome = createTempDir().toFile();
-    loader = new SolrResourceLoader(solrHome.getAbsolutePath());
+    loader = new SolrResourceLoader(solrHome.toPath());
   }
 
   @AfterClass
@@ -65,7 +65,7 @@ public class TestSolrXml extends SolrTes
     File testSrcRoot = new File(SolrTestCaseJ4.TEST_HOME());
     FileUtils.copyFile(new File(testSrcRoot, "solr-50-all.xml"), new File(solrHome, "solr.xml"));
 
-    NodeConfig cfg = SolrXmlConfig.fromSolrHome(loader, solrHome.getAbsolutePath());
+    NodeConfig cfg = SolrXmlConfig.fromSolrHome(loader, solrHome.toPath());
     CloudConfig ccfg = cfg.getCloudConfig();
     UpdateShardHandlerConfig ucfg = cfg.getUpdateShardHandlerConfig();
     
@@ -117,7 +117,7 @@ public class TestSolrXml extends SolrTes
     File testSrcRoot = new File(SolrTestCaseJ4.TEST_HOME());
     FileUtils.copyFile(new File(testSrcRoot, "solr-50-all.xml"), new File(solrHome, "solr.xml"));
 
-    NodeConfig cfg = SolrXmlConfig.fromSolrHome(loader, solrHome.getAbsolutePath());
+    NodeConfig cfg = SolrXmlConfig.fromSolrHome(loader, solrHome.toPath());
     assertThat(cfg.getCoreRootDirectory().toString(), containsString("myCoreRoot"));
     assertEquals("solr host port", 8888, cfg.getCloudConfig().getSolrHostPort());
     assertEquals("schema cache", false, cfg.hasSchemaCache());

Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminCreateDiscoverTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminCreateDiscoverTest.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminCreateDiscoverTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminCreateDiscoverTest.java Fri Nov 20 12:42:42 2015
@@ -21,6 +21,7 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStreamReader;
+import java.nio.charset.StandardCharsets;
 import java.util.Properties;
 
 import org.apache.commons.io.FileUtils;
@@ -34,8 +35,6 @@ import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-import java.nio.charset.StandardCharsets;
-
 public class CoreAdminCreateDiscoverTest extends SolrTestCaseJ4 {
 
   private static File solrHomeDirectory = null;
@@ -52,7 +51,7 @@ public class CoreAdminCreateDiscoverTest
 
     solrHomeDirectory = createTempDir().toFile();
 
-    setupNoCoreTest(solrHomeDirectory, null);
+    setupNoCoreTest(solrHomeDirectory.toPath(), null);
 
     admin = new CoreAdminHandler(h.getCoreContainer());
   }

Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/TestManagedResource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/TestManagedResource.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/TestManagedResource.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/TestManagedResource.java Fri Nov 20 12:42:42 2015
@@ -23,6 +23,7 @@ import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 import java.io.Serializable;
 import java.io.StringReader;
+import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
@@ -216,7 +217,7 @@ public class TestManagedResource extends
     storageIO.storage.put(storedResourceId, new BytesRef(json(storedJson)));
     
     ManagedTestResource res = 
-        new ManagedTestResource(resourceId, new SolrResourceLoader("./"), storageIO);
+        new ManagedTestResource(resourceId, new SolrResourceLoader(Paths.get("./")), storageIO);
     res.loadManagedDataAndNotify(observers);
     
     assertTrue("Observer was not notified by ManagedResource!", observer.wasNotified);
@@ -282,7 +283,7 @@ public class TestManagedResource extends
     storageIO.storage.put(storedResourceId, ser2bytes((Serializable)storedData));
     
     CustomStorageFormatResource res = 
-        new CustomStorageFormatResource(resourceId, new SolrResourceLoader("./"), storageIO);
+        new CustomStorageFormatResource(resourceId, new SolrResourceLoader(Paths.get("./")), storageIO);
     res.loadManagedDataAndNotify(observers);
     
     assertTrue("Observer was not notified by ManagedResource!", observer.wasNotified);

Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/TestManagedResourceStorage.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/TestManagedResourceStorage.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/TestManagedResourceStorage.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/TestManagedResourceStorage.java Fri Nov 20 12:42:42 2015
@@ -17,22 +17,23 @@ package org.apache.solr.rest;
  */
 
 import java.io.File;
+import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.lucene.util.LuceneTestCase.Slow;
 import org.apache.lucene.util.LuceneTestCase.AwaitsFix;
+import org.apache.lucene.util.LuceneTestCase.Slow;
 import org.apache.solr.cloud.AbstractZkTestCase;
 import org.apache.solr.common.cloud.SolrZkClient;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.core.SolrResourceLoader;
-import org.apache.solr.rest.ManagedResourceStorage.StorageIO;
 import org.apache.solr.rest.ManagedResourceStorage.FileStorageIO;
-import org.apache.solr.rest.ManagedResourceStorage.ZooKeeperStorageIO;
 import org.apache.solr.rest.ManagedResourceStorage.JsonStorage;
+import org.apache.solr.rest.ManagedResourceStorage.StorageIO;
+import org.apache.solr.rest.ManagedResourceStorage.ZooKeeperStorageIO;
 import org.junit.Test;
 
 /**
@@ -51,7 +52,7 @@ public class TestManagedResourceStorage
     // test using ZooKeeper
     assertTrue("Not using ZooKeeper", h.getCoreContainer().isZooKeeperAware());
     SolrZkClient zkClient = h.getCoreContainer().getZkController().getZkClient();
-    SolrResourceLoader loader = new SolrResourceLoader("./");    
+    SolrResourceLoader loader = new SolrResourceLoader(Paths.get("./"));
     // Solr unit tests can only write to their working directory due to
     // a custom Java Security Manager installed in the test environment
     NamedList<String> initArgs = new NamedList<>();
@@ -71,7 +72,7 @@ public class TestManagedResourceStorage
   @Test
   public void testFileBasedJsonStorage() throws Exception {
     File instanceDir = createTempDir("json-storage").toFile();
-    SolrResourceLoader loader = new SolrResourceLoader(instanceDir.getAbsolutePath());
+    SolrResourceLoader loader = new SolrResourceLoader(instanceDir.toPath());
     try {
       NamedList<String> initArgs = new NamedList<>();
       String managedDir = instanceDir.getAbsolutePath() + File.separator + "managed";

Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/TestRestManager.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/TestRestManager.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/TestRestManager.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/TestRestManager.java Fri Nov 20 12:42:42 2015
@@ -17,6 +17,7 @@ package org.apache.solr.rest;
  */
 
 import java.io.File;
+import java.nio.file.Paths;
 import java.util.Arrays;
 import java.util.Locale;
 import java.util.Set;
@@ -79,7 +80,7 @@ public class TestRestManager extends Sol
   public void testManagedResourceRegistrationAndInitialization() throws Exception {
     // first, we need to register some ManagedResources, which is done with the registry
     // provided by the SolrResourceLoader
-    SolrResourceLoader loader = new SolrResourceLoader("./");
+    SolrResourceLoader loader = new SolrResourceLoader(Paths.get("./"));
     
     RestManager.Registry registry = loader.getManagedResourceRegistry();
     assertNotNull("Expected a non-null RestManager.Registry from the SolrResourceLoader!", registry);
@@ -229,7 +230,7 @@ public class TestRestManager extends Sol
   
   @Test
   public void testReloadFromPersistentStorage() throws Exception {
-    SolrResourceLoader loader = new SolrResourceLoader("./");
+    SolrResourceLoader loader = new SolrResourceLoader(Paths.get("./"));
     File unitTestStorageDir = createTempDir("testRestManager").toFile();
     assertTrue(unitTestStorageDir.getAbsolutePath()+" is not a directory!", 
         unitTestStorageDir.isDirectory());    

Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/schema/DateFieldTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/schema/DateFieldTest.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/schema/DateFieldTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/schema/DateFieldTest.java Fri Nov 20 12:42:42 2015
@@ -27,6 +27,7 @@ import org.junit.BeforeClass;
 import org.junit.Ignore;
 
 import java.io.File;
+import java.nio.file.Paths;
 import java.text.ParseException;
 import java.util.Collections;
 import java.util.Date;
@@ -46,7 +47,7 @@ public class DateFieldTest extends SolrT
     System.setProperty("solr.test.sys.prop1", "propone");
     System.setProperty("solr.test.sys.prop2", "proptwo");
     SolrConfig config = new SolrConfig
-        (new SolrResourceLoader(testInstanceDir), testConfHome + "solrconfig.xml", null);
+        (new SolrResourceLoader(Paths.get(testInstanceDir)), testConfHome + "solrconfig.xml", null);
     IndexSchema schema = IndexSchemaFactory.buildIndexSchema(testConfHome + "schema.xml", config);
     f = new TrieDateField();
     f.init(schema, Collections.<String,String>emptyMap());

Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/schema/OpenExchangeRatesOrgProviderTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/schema/OpenExchangeRatesOrgProviderTest.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/schema/OpenExchangeRatesOrgProviderTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/schema/OpenExchangeRatesOrgProviderTest.java Fri Nov 20 12:42:42 2015
@@ -16,17 +16,17 @@ package org.apache.solr.schema;
  * limitations under the License.
  */
 
-import org.apache.solr.SolrTestCaseJ4;
+import java.util.HashMap;
+import java.util.Map;
+
 import org.apache.lucene.analysis.util.ResourceLoader;
+import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.util.SuppressForbidden;
 import org.apache.solr.core.SolrResourceLoader;
 import org.junit.Before;
 import org.junit.Test;
 
-import java.util.HashMap;
-import java.util.Map;
-
 /**
  * Tests currency field type.
  */
@@ -48,7 +48,7 @@ public class OpenExchangeRatesOrgProvide
     mockParams.put(OpenExchangeRatesOrgProvider.PARAM_RATES_FILE_LOCATION, 
                    "open-exchange-rates.json");  
     oerp = new OpenExchangeRatesOrgProvider();
-    loader = new SolrResourceLoader("solr/collection1");
+    loader = new SolrResourceLoader(TEST_PATH().resolve("collection1"));
   }
   
   @Test

Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/schema/PrimitiveFieldTypeTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/schema/PrimitiveFieldTypeTest.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/schema/PrimitiveFieldTypeTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/schema/PrimitiveFieldTypeTest.java Fri Nov 20 12:42:42 2015
@@ -17,15 +17,15 @@
 
 package org.apache.solr.schema;
 
+import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
+
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.core.SolrConfig;
 import org.apache.solr.core.SolrResourceLoader;
 import org.junit.Test;
 
-import java.io.File;
-import java.util.HashMap;
-import java.util.Map;
-
 /**
  * Tests that defaults are set for Primitive (non-analyzed) fields
  */
@@ -45,7 +45,7 @@ public class PrimitiveFieldTypeTest exte
     System.setProperty("solr.allow.unsafe.resourceloading", "true");
 
     initMap = new HashMap<>();
-    config = new SolrConfig(new SolrResourceLoader("solr/collection1"), testConfHome + "solrconfig.xml", null);
+    config = new SolrConfig(new SolrResourceLoader(TEST_PATH().resolve("collection1")), testConfHome + "solrconfig.xml", null);
   }
   
   @Override

Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java Fri Nov 20 12:42:42 2015
@@ -17,12 +17,9 @@ package org.apache.solr.update;
  * limitations under the License.
  */
 
-import java.io.File;
-import java.io.IOException;
+import java.nio.file.Path;
 import java.util.Map;
 
-import javax.xml.parsers.ParserConfigurationException;
-
 import org.apache.lucene.index.ConcurrentMergeScheduler;
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.index.SimpleMergedSegmentWarmer;
@@ -34,7 +31,6 @@ import org.apache.solr.schema.IndexSchem
 import org.apache.solr.schema.IndexSchemaFactory;
 import org.junit.BeforeClass;
 import org.junit.Test;
-import org.xml.sax.SAXException;
 
 /**
  * Testcase for {@link SolrIndexConfig}
@@ -48,7 +44,7 @@ public class SolrIndexConfigTest extends
     initCore("solrconfig.xml","schema.xml");
   }
   
-  private final String instanceDir = new File("solr", "collection1").getPath();
+  private final Path instanceDir = TEST_PATH().resolve("collection1");
   private final String solrConfigFileNameWarmer = "solrconfig-warmer.xml";
   private final String solrConfigFileNameTieredMergePolicy = "solrconfig-tieredmergepolicy.xml";
 

Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/util/TestSystemIdResolver.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/util/TestSystemIdResolver.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/util/TestSystemIdResolver.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/util/TestSystemIdResolver.java Fri Nov 20 12:42:42 2015
@@ -17,14 +17,15 @@ package org.apache.solr.util;
  * limitations under the License.
  */
 
-import org.apache.solr.core.SolrResourceLoader;
+import java.io.File;
+import java.nio.file.Path;
+
+import org.apache.commons.io.IOUtils;
 import org.apache.lucene.analysis.util.ResourceLoader;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.solr.SolrTestCaseJ4;
-
-import java.io.File;
+import org.apache.solr.core.SolrResourceLoader;
 import org.xml.sax.InputSource;
-import org.apache.commons.io.IOUtils;
 
 public class TestSystemIdResolver extends LuceneTestCase {
   
@@ -48,8 +49,8 @@ public class TestSystemIdResolver extend
   }
   
   public void testResolving() throws Exception {
-    final String testHome = SolrTestCaseJ4.getFile("solr/collection1").getParent();
-    final ResourceLoader loader = new SolrResourceLoader(testHome + "/collection1", this.getClass().getClassLoader());
+    final Path testHome = SolrTestCaseJ4.getFile("solr/collection1").getParentFile().toPath();
+    final ResourceLoader loader = new SolrResourceLoader(testHome.resolve("collection1"), this.getClass().getClassLoader());
     final SystemIdResolver resolver = new SystemIdResolver(loader);
     final String fileUri = new File(testHome+"/crazy-path-to-config.xml").toURI().toASCIIString();
     

Modified: lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/common/util/JavaBinCodec.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/common/util/JavaBinCodec.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/common/util/JavaBinCodec.java (original)
+++ lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/common/util/JavaBinCodec.java Fri Nov 20 12:42:42 2015
@@ -16,19 +16,28 @@
  */
 package org.apache.solr.common.util;
 
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.ByteBuffer;
+import java.nio.file.Path;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+
 import org.apache.solr.common.EnumFieldValue;
-import org.noggit.CharArr;
 import org.apache.solr.common.SolrDocument;
 import org.apache.solr.common.SolrDocumentList;
 import org.apache.solr.common.SolrInputDocument;
 import org.apache.solr.common.SolrInputField;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.*;
-import java.util.Map.Entry;
-import java.nio.ByteBuffer;
+import org.noggit.CharArr;
 
 /**
  * The class is designed to optimaly serialize/deserialize any supported types in Solr response. As we know there are only a limited type of
@@ -297,6 +306,10 @@ public class JavaBinCodec {
       writeIterator((Iterator) val);
       return true;
     }
+    if (val instanceof Path) {
+      writeStr(((Path) val).toAbsolutePath().toString());
+      return true;
+    }
     if (val instanceof Iterable) {
       writeIterator(((Iterable) val).iterator());
       return true;

Modified: lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTestCase.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTestCase.java (original)
+++ lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTestCase.java Fri Nov 20 12:42:42 2015
@@ -18,6 +18,7 @@ package org.apache.solr.client.solrj.emb
  */
 
 import java.io.File;
+import java.nio.file.Path;
 
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.client.solrj.SolrClient;
@@ -31,7 +32,7 @@ public abstract class AbstractEmbeddedSo
 
   protected static Logger log = LoggerFactory.getLogger(AbstractEmbeddedSolrServerTestCase.class);
 
-  protected static final File SOLR_HOME = SolrTestCaseJ4.getFile("solrj/solr/shared");
+  protected static final Path SOLR_HOME = getFile("solrj/solr/shared").toPath().toAbsolutePath();
 
   protected CoreContainer cores = null;
   protected File tempDir;
@@ -41,9 +42,9 @@ public abstract class AbstractEmbeddedSo
   public void setUp() throws Exception {
     super.setUp();
 
-    System.setProperty("solr.solr.home", SOLR_HOME.getAbsolutePath());
-    System.setProperty("configSetBase", SolrTestCaseJ4.getFile("solrj/solr/configsets").getAbsolutePath());
-    System.out.println("Solr home: " + SOLR_HOME.getAbsolutePath());
+    System.setProperty("solr.solr.home", SOLR_HOME.toString());
+    System.setProperty("configSetBase", SOLR_HOME.resolve("../configsets").normalize().toString());
+    System.out.println("Solr home: " + SOLR_HOME.toString());
 
     //The index is always stored within a temporary directory
     tempDir = createTempDir().toFile();
@@ -54,11 +55,13 @@ public abstract class AbstractEmbeddedSo
     System.setProperty("dataDir2", dataDir2.getAbsolutePath());
     System.setProperty("tempDir", tempDir.getAbsolutePath());
     System.setProperty("tests.shardhandler.randomSeed", Long.toString(random().nextLong()));
-    cores = CoreContainer.createAndLoad(SOLR_HOME.getAbsolutePath(), getSolrXml());
+    cores = CoreContainer.createAndLoad(SOLR_HOME, getSolrXml());
     //cores.setPersistent(false);
   }
   
-  protected abstract File getSolrXml() throws Exception;
+  protected Path getSolrXml() throws Exception {
+    return SOLR_HOME.resolve("solr.xml");
+  }
 
   @Override
   @After

Modified: lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestEmbeddedSolrServer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestEmbeddedSolrServer.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestEmbeddedSolrServer.java (original)
+++ lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestEmbeddedSolrServer.java Fri Nov 20 12:42:42 2015
@@ -17,6 +17,10 @@ package org.apache.solr.client.solrj.emb
  * limitations under the License.
  */
 
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
 import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
 import junit.framework.Assert;
 import org.apache.solr.core.SolrCore;
@@ -26,11 +30,6 @@ import org.junit.rules.TestRule;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
 public class TestEmbeddedSolrServer extends AbstractEmbeddedSolrServerTestCase {
 
   @Rule
@@ -44,11 +43,6 @@ public class TestEmbeddedSolrServer exte
     return new EmbeddedSolrServer(cores, "core1");
   }
 
-  @Override
-  protected File getSolrXml() throws Exception {
-    return new File(SOLR_HOME, "solr.xml");
-  }
-
   public void testGetCoreContainer() {
     Assert.assertEquals(cores, ((EmbeddedSolrServer)getSolrCore0()).getCoreContainer());
     Assert.assertEquals(cores, ((EmbeddedSolrServer)getSolrCore1()).getCoreContainer());

Modified: lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestSolrProperties.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestSolrProperties.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestSolrProperties.java (original)
+++ lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestSolrProperties.java Fri Nov 20 12:42:42 2015
@@ -34,8 +34,6 @@ import org.junit.rules.TestRule;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.File;
-
 /**
  *
  * @since solr 1.3
@@ -43,17 +41,10 @@ import java.io.File;
 public class TestSolrProperties extends AbstractEmbeddedSolrServerTestCase {
   protected static Logger log = LoggerFactory.getLogger(TestSolrProperties.class);
 
-  private static final String SOLR_XML = "solr.xml";
-
   @Rule
   public TestRule solrTestRules = 
     RuleChain.outerRule(new SystemPropertiesRestoreRule());
 
-  @Override
-  protected File getSolrXml() throws Exception {
-    return new File(SOLR_HOME, SOLR_XML);
-  }
-
   protected SolrClient getSolrAdmin() {
     return new EmbeddedSolrServer(cores, "core0");
   }

Modified: lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java (original)
+++ lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java Fri Nov 20 12:42:42 2015
@@ -17,6 +17,8 @@
 
 package org.apache.solr.client.solrj.request;
 
+import java.io.File;
+
 import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
 import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
 import org.apache.commons.io.FileUtils;
@@ -39,22 +41,19 @@ import org.junit.rules.TestRule;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.File;
-
 import static org.hamcrest.CoreMatchers.notNullValue;
 import static org.hamcrest.core.Is.is;
 
 @ThreadLeakFilters(defaultFilters = true, filters = {SolrIgnoredThreadsFilter.class})
 public class TestCoreAdmin extends AbstractEmbeddedSolrServerTestCase {
   protected static Logger log = LoggerFactory.getLogger(TestCoreAdmin.class);
-  
-  private static final String SOLR_XML = "solr.xml";
 
   private static String tempDirProp;
 
   @Rule
   public TestRule testRule = RuleChain.outerRule(new SystemPropertiesRestoreRule());
-  
+
+  /*
   @Override
   protected File getSolrXml() throws Exception {
     // This test writes on the directory where the solr.xml is located. Better
@@ -65,7 +64,8 @@ public class TestCoreAdmin extends Abstr
     FileUtils.copyFile(origSolrXml, solrXml);
     return solrXml;
   }
-  
+  */
+
   protected SolrClient getSolrAdmin() {
     return new EmbeddedSolrServer(cores, "core0");
   }

Modified: lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/client/solrj/response/NoOpResponseParserTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/client/solrj/response/NoOpResponseParserTest.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/client/solrj/response/NoOpResponseParserTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/client/solrj/response/NoOpResponseParserTest.java Fri Nov 20 12:42:42 2015
@@ -17,11 +17,18 @@ package org.apache.solr.client.solrj.res
  * limitations under the License.
  */
 
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.nio.charset.StandardCharsets;
+import java.util.List;
+
 import org.apache.commons.io.IOUtils;
 import org.apache.solr.SolrJettyTestBase;
 import org.apache.solr.client.solrj.ResponseParser;
-import org.apache.solr.client.solrj.SolrQuery;
 import org.apache.solr.client.solrj.SolrClient;
+import org.apache.solr.client.solrj.SolrQuery;
 import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.client.solrj.impl.HttpSolrClient;
 import org.apache.solr.client.solrj.impl.NoOpResponseParser;
@@ -35,13 +42,6 @@ import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.nio.charset.StandardCharsets;
-import java.util.List;
-
 /**
  * A test for parsing Solr response from query by NoOpResponseParser.
  * @see org.apache.solr.client.solrj.impl.NoOpResponseParser
@@ -50,7 +50,7 @@ import java.util.List;
 public class NoOpResponseParserTest extends SolrJettyTestBase {
 
   private static InputStream getResponse() throws IOException {
-    return new SolrResourceLoader(null, null).openResource("solrj/sampleDateFacetResponse.xml");
+    return new SolrResourceLoader().openResource("solrj/sampleDateFacetResponse.xml");
   }
 
   @BeforeClass

Modified: lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/client/solrj/response/QueryResponseTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/client/solrj/response/QueryResponseTest.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/client/solrj/response/QueryResponseTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/client/solrj/response/QueryResponseTest.java Fri Nov 20 12:42:42 2015
@@ -17,8 +17,13 @@
 
 package org.apache.solr.client.solrj.response;
 
-import junit.framework.Assert;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.nio.charset.StandardCharsets;
+import java.util.List;
 
+import junit.framework.Assert;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util.TestRuleLimitSysouts.Limit;
 import org.apache.solr.client.solrj.impl.XMLResponseParser;
@@ -28,12 +33,6 @@ import org.apache.solr.common.util.Named
 import org.apache.solr.core.SolrResourceLoader;
 import org.junit.Test;
 
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.nio.charset.StandardCharsets;
-import java.util.List;
-
 /**
  * A few tests for parsing Solr response in QueryResponse
  * 
@@ -44,7 +43,7 @@ public class QueryResponseTest extends L
   @Test
   public void testDateFacets() throws Exception   {
     XMLResponseParser parser = new XMLResponseParser();
-    InputStream is = new SolrResourceLoader(null, null).openResource("solrj/sampleDateFacetResponse.xml");
+    InputStream is = new SolrResourceLoader().openResource("solrj/sampleDateFacetResponse.xml");
     assertNotNull(is);
     Reader in = new InputStreamReader(is, StandardCharsets.UTF_8);
     NamedList<Object> response = parser.processResponse(in);
@@ -68,7 +67,7 @@ public class QueryResponseTest extends L
   @Test
   public void testRangeFacets() throws Exception {
     XMLResponseParser parser = new XMLResponseParser();
-    InputStream is = new SolrResourceLoader(null, null).openResource("solrj/sampleDateFacetResponse.xml");
+    InputStream is = new SolrResourceLoader().openResource("solrj/sampleDateFacetResponse.xml");
     assertNotNull(is);
     Reader in = new InputStreamReader(is, StandardCharsets.UTF_8);
     NamedList<Object> response = parser.processResponse(in);
@@ -125,7 +124,7 @@ public class QueryResponseTest extends L
   @Test
   public void testGroupResponse() throws Exception {
     XMLResponseParser parser = new XMLResponseParser();
-    InputStream is = new SolrResourceLoader(null, null).openResource("solrj/sampleGroupResponse.xml");
+    InputStream is = new SolrResourceLoader().openResource("solrj/sampleGroupResponse.xml");
     assertNotNull(is);
     Reader in = new InputStreamReader(is, StandardCharsets.UTF_8);
     NamedList<Object> response = parser.processResponse(in);
@@ -227,7 +226,7 @@ public class QueryResponseTest extends L
   @Test
   public void testSimpleGroupResponse() throws Exception {
     XMLResponseParser parser = new XMLResponseParser();
-    InputStream is = new SolrResourceLoader(null, null).openResource("solrj/sampleSimpleGroupResponse.xml");
+    InputStream is = new SolrResourceLoader().openResource("solrj/sampleSimpleGroupResponse.xml");
     assertNotNull(is);
     Reader in = new InputStreamReader(is, StandardCharsets.UTF_8);
     NamedList<Object> response = parser.processResponse(in);
@@ -268,7 +267,7 @@ public class QueryResponseTest extends L
   
   public void testIntervalFacetsResponse() throws Exception {
     XMLResponseParser parser = new XMLResponseParser();
-    try(SolrResourceLoader loader = new SolrResourceLoader(null, null)) {
+    try(SolrResourceLoader loader = new SolrResourceLoader()) {
       InputStream is = loader.openResource("solrj/sampleIntervalFacetsResponse.xml");
       assertNotNull(is);
       Reader in = new InputStreamReader(is, StandardCharsets.UTF_8);

Modified: lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/client/solrj/response/TestClusteringResponse.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/client/solrj/response/TestClusteringResponse.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/client/solrj/response/TestClusteringResponse.java (original)
+++ lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/client/solrj/response/TestClusteringResponse.java Fri Nov 20 12:42:42 2015
@@ -39,7 +39,7 @@ public class TestClusteringResponse exte
   public void testClusteringResponse() throws Exception {
     XMLResponseParser parser = new XMLResponseParser();
     /*Load a simple XML with the clustering response encoded in an XML format*/
-    InputStream is = new SolrResourceLoader(null, null).openResource("solrj/sampleClusteringResponse.xml");
+    InputStream is = new SolrResourceLoader().openResource("solrj/sampleClusteringResponse.xml");
     assertNotNull(is);
     Reader in = new InputStreamReader(is, StandardCharsets.UTF_8);
     NamedList<Object> response = parser.processResponse(in);

Modified: lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/common/util/ContentStreamTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/common/util/ContentStreamTest.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/common/util/ContentStreamTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/common/util/ContentStreamTest.java Fri Nov 20 12:42:42 2015
@@ -29,7 +29,6 @@ import java.nio.charset.StandardCharsets
 
 import org.apache.commons.io.IOUtils;
 import org.apache.solr.SolrTestCaseJ4;
-import org.apache.lucene.util.TestUtil;
 import org.apache.solr.core.SolrResourceLoader;
 
 /**
@@ -47,7 +46,7 @@ public class ContentStreamTest extends S
 
   public void testFileStream() throws IOException 
   {
-    InputStream is = new SolrResourceLoader(null, null).openResource( "solrj/README" );
+    InputStream is = new SolrResourceLoader().openResource( "solrj/README" );
     assertNotNull( is );
     File file = new File(createTempDir().toFile(), "README");
     FileOutputStream os = new FileOutputStream(file);
@@ -76,7 +75,7 @@ public class ContentStreamTest extends S
 
   public void testURLStream() throws IOException 
   {
-    InputStream is = new SolrResourceLoader(null, null).openResource( "solrj/README" );
+    InputStream is = new SolrResourceLoader().openResource( "solrj/README" );
     assertNotNull( is );
     File file = new File(createTempDir().toFile(), "README");
     FileOutputStream os = new FileOutputStream(file);

Modified: lucene/dev/branches/branch_5x/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java (original)
+++ lucene/dev/branches/branch_5x/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java Fri Nov 20 12:42:42 2015
@@ -17,8 +17,7 @@
 
 package org.apache.solr;
 
-import static com.google.common.base.Preconditions.checkNotNull;
-
+import javax.xml.xpath.XPathExpressionException;
 import java.io.File;
 import java.io.IOException;
 import java.io.OutputStreamWriter;
@@ -34,31 +33,22 @@ import java.lang.annotation.RetentionPol
 import java.lang.annotation.Target;
 import java.net.URL;
 import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Path;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Properties;
+import java.nio.file.Paths;
+import java.util.*;
 import java.util.logging.Level;
 
-import javax.xml.xpath.XPathExpressionException;
-
+import com.carrotsearch.randomizedtesting.RandomizedContext;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
+import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
 import org.apache.commons.codec.Charsets;
 import org.apache.commons.io.FileUtils;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.util.Constants;
-import org.apache.lucene.util.IOUtils;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util.LuceneTestCase.SuppressFileSystems;
 import org.apache.lucene.util.LuceneTestCase.SuppressSysoutChecks;
@@ -116,9 +106,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.xml.sax.SAXException;
 
-import com.carrotsearch.randomizedtesting.RandomizedContext;
-import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
-import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
+import static com.google.common.base.Preconditions.checkNotNull;
 
 /**
  * A junit4 Solr test harness that extends LuceneTestCaseJ4. To change which core is used when loading the schema and solrconfig.xml, simply
@@ -340,16 +328,12 @@ public abstract class SolrTestCaseJ4 ext
    * @param xmlStr - the text of an XML file to use. If null, use the what's the absolute minimal file.
    * @throws Exception Lost of file-type things can go wrong.
    */
-  public static void setupNoCoreTest(File solrHome, String xmlStr) throws Exception {
+  public static void setupNoCoreTest(Path solrHome, String xmlStr) throws Exception {
 
-    File tmpFile = new File(solrHome, SolrXmlConfig.SOLR_XML_FILE);
-    if (xmlStr == null) {
+    if (xmlStr == null)
       xmlStr = "<solr></solr>";
-    }
-    FileUtils.write(tmpFile, xmlStr, IOUtils.UTF_8);
-
-    SolrResourceLoader loader = new SolrResourceLoader(solrHome.getAbsolutePath());
-    h = new TestHarness(SolrXmlConfig.fromFile(loader, new File(solrHome, "solr.xml")));
+    Files.write(solrHome.resolve(SolrXmlConfig.SOLR_XML_FILE), xmlStr.getBytes(StandardCharsets.UTF_8));
+    h = new TestHarness(SolrXmlConfig.fromSolrHome(solrHome));
     lrf = h.getRequestFactory("standard", 0, 20, CommonParams.VERSION, "2.2");
   }
   
@@ -412,7 +396,7 @@ public abstract class SolrTestCaseJ4 ext
     assertNotNull(solrHome);
     configString = config;
     schemaString = schema;
-    testSolrHome = solrHome;
+    testSolrHome = Paths.get(solrHome);
     if (solrHome != null) {
       System.setProperty("solr.solr.home", solrHome);
     }
@@ -497,7 +481,7 @@ public abstract class SolrTestCaseJ4 ext
 
   protected static String configString;
   protected static String schemaString;
-  protected static String testSolrHome;
+  protected static Path testSolrHome;
 
   protected static SolrConfig solrConfig;
 
@@ -591,7 +575,7 @@ public abstract class SolrTestCaseJ4 ext
             ("standard",0,20,CommonParams.VERSION,"2.2");
   }
 
-  public static CoreContainer createCoreContainer(String solrHome, String solrXML) {
+  public static CoreContainer createCoreContainer(Path solrHome, String solrXML) {
     testSolrHome = checkNotNull(solrHome);
     h = new TestHarness(solrHome, solrXML);
     lrf = h.getRequestFactory("standard", 0, 20, CommonParams.VERSION, "2.2");
@@ -599,21 +583,21 @@ public abstract class SolrTestCaseJ4 ext
   }
 
   public static CoreContainer createCoreContainer(NodeConfig config, CoresLocator locator) {
-    testSolrHome = config.getSolrResourceLoader().getInstanceDir();
+    testSolrHome = config.getSolrResourceLoader().getInstancePath();
     h = new TestHarness(config, locator);
     lrf = h.getRequestFactory("standard", 0, 20, CommonParams.VERSION, "2.2");
     return h.getCoreContainer();
   }
 
   public static CoreContainer createCoreContainer(String coreName, String dataDir, String solrConfig, String schema) {
-    NodeConfig nodeConfig = TestHarness.buildTestNodeConfig(new SolrResourceLoader(SolrResourceLoader.locateSolrHome()));
+    NodeConfig nodeConfig = TestHarness.buildTestNodeConfig(new SolrResourceLoader(TEST_PATH()));
     CoresLocator locator = new TestHarness.TestCoresLocator(coreName, dataDir, solrConfig, schema);
     CoreContainer cc = createCoreContainer(nodeConfig, locator);
     h.coreName = coreName;
     return cc;
   }
 
-  public static CoreContainer createDefaultCoreContainer(String solrHome) {
+  public static CoreContainer createDefaultCoreContainer(Path solrHome) {
     testSolrHome = checkNotNull(solrHome);
     h = new TestHarness("collection1", initCoreDataDir.getAbsolutePath(), "solrconfig.xml", "schema.xml");
     lrf = h.getRequestFactory("standard", 0, 20, CommonParams.VERSION, "2.2");
@@ -1763,6 +1747,8 @@ public abstract class SolrTestCaseJ4 ext
     return getFile("solr/collection1").getParent();
   }
 
+  public static Path TEST_PATH() { return getFile("solr/collection1").getParentFile().toPath(); }
+
   public static Throwable getRootCause(Throwable t) {
     Throwable result = t;
     for (Throwable cause = t; null != cause; cause = cause.getCause()) {

Modified: lucene/dev/branches/branch_5x/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java?rev=1715344&r1=1715343&r2=1715344&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java (original)
+++ lucene/dev/branches/branch_5x/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java Fri Nov 20 12:42:42 2015
@@ -17,9 +17,9 @@
 
 package org.apache.solr.util;
 
-import java.io.File;
 import java.io.IOException;
 import java.io.StringWriter;
+import java.nio.file.Path;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -66,21 +66,21 @@ public class TestHarness extends BaseTes
    * follows the basic conventions of being a relative path in the solrHome 
    * dir. (ie: <code>${solrHome}/${coreName}/conf/${confFile}</code>
    */
-  public static SolrConfig createConfig(String solrHome, String coreName, String confFile) {
+  public static SolrConfig createConfig(Path solrHome, String coreName, String confFile) {
     // set some system properties for use by tests
     System.setProperty("solr.test.sys.prop1", "propone");
     System.setProperty("solr.test.sys.prop2", "proptwo");
     try {
-      return new SolrConfig(solrHome + File.separator + coreName, confFile, null);
+      return new SolrConfig(solrHome.resolve(coreName), confFile, null);
     } catch (Exception xany) {
       throw new RuntimeException(xany);
     }
   }
   
   /**
-   * Creates a SolrConfig object for the default test core using {@link #createConfig(String,String,String)}
+   * Creates a SolrConfig object for the default test core using {@link #createConfig(Path,String,String)}
    */
-  public static SolrConfig createConfig(String solrHome, String confFile) {
+  public static SolrConfig createConfig(Path solrHome, String confFile) {
     return createConfig(solrHome, SolrTestCaseJ4.DEFAULT_TEST_CORENAME, confFile);
   }
 
@@ -139,7 +139,7 @@ public class TestHarness extends BaseTes
    * @param solrHome the solr home directory
    * @param solrXml the text of a solrxml
    */
-  public TestHarness(String solrHome, String solrXml) {
+  public TestHarness(Path solrHome, String solrXml) {
     this(new SolrResourceLoader(solrHome), solrXml);
   }