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 2013/07/02 17:50:50 UTC
svn commit: r1498990 [2/2] - in /lucene/dev/trunk/solr: ./
contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/
core/src/java/org/apache/solr/cloud/ core/src/java/org/apache/solr/core/
core/src/java/org/apache/solr/handler/admin/ core...
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestShardHandlerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestShardHandlerFactory.java?rev=1498990&r1=1498989&r2=1498990&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestShardHandlerFactory.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestShardHandlerFactory.java Tue Jul 2 15:50:49 2013
@@ -29,8 +29,7 @@ import java.io.File;
public class TestShardHandlerFactory extends SolrTestCaseJ4 {
public void testXML() throws Exception {
- CoreContainer cc = new CoreContainer(TEST_HOME());
- cc.load(TEST_HOME(), new File(TEST_HOME(), "solr-shardhandler.xml"));
+ CoreContainer cc = CoreContainer.createAndLoad(TEST_HOME(), new File(TEST_HOME(), "solr-shardhandler.xml"));
ShardHandlerFactory factory = cc.getShardHandlerFactory();
assertTrue(factory instanceof MockShardHandlerFactory);
NamedList args = ((MockShardHandlerFactory)factory).args;
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestSolrXml.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestSolrXml.java?rev=1498990&r1=1498989&r2=1498990&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestSolrXml.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestSolrXml.java Tue Jul 2 15:50:49 2013
@@ -44,7 +44,7 @@ public class TestSolrXml extends SolrTes
boolean oldStyle = (config.getNode("solr/cores", false) != null);
ConfigSolr cfg;
if (oldStyle) {
- cfg = new ConfigSolrXmlOld(config, cc);
+ cfg = new ConfigSolrXmlOld(config);
} else {
cfg = new ConfigSolrXml(config, cc);
}
@@ -103,7 +103,7 @@ public class TestSolrXml extends SolrTes
boolean oldStyle = (config.getNode("solr/cores", false) != null);
ConfigSolr cfg;
if (oldStyle) {
- cfg = new ConfigSolrXmlOld(config, cc);
+ cfg = new ConfigSolrXmlOld(config);
} else {
cfg = new ConfigSolrXml(config, cc);
}
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestSolrXmlPersistence.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestSolrXmlPersistence.java?rev=1498990&r1=1498989&r2=1498990&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestSolrXmlPersistence.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestSolrXmlPersistence.java Tue Jul 2 15:50:49 2013
@@ -25,7 +25,6 @@ import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.params.CoreAdminParams;
import org.apache.solr.handler.admin.CoreAdminHandler;
import org.apache.solr.response.SolrQueryResponse;
-import org.junit.BeforeClass;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.RuleChain;
@@ -46,12 +45,14 @@ import java.util.List;
public class TestSolrXmlPersistence extends SolrTestCaseJ4 {
- private final File solrHomeDirectory = new File(TEMP_DIR, this.getClass().getName());
+ private File solrHomeDirectory = new File(TEMP_DIR, this.getClass().getName());
+ /*
@BeforeClass
public static void beforeClass() throws Exception {
initCore("solrconfig-minimal.xml", "schema-tiny.xml");
}
+ */
@Rule
public TestRule solrTestRules =
@@ -59,9 +60,9 @@ public class TestSolrXmlPersistence exte
private CoreContainer init(String solrXmlString, String... subDirs) throws Exception {
- if (solrHomeDirectory.exists()) {
- FileUtils.deleteDirectory(solrHomeDirectory);
- }
+
+ createTempDir();
+ solrHomeDirectory = dataDir;
for (String s : subDirs) {
copyMinConf(new File(solrHomeDirectory, s));
@@ -69,10 +70,8 @@ public class TestSolrXmlPersistence exte
File solrXml = new File(solrHomeDirectory, "solr.xml");
FileUtils.write(solrXml, solrXmlString, IOUtils.CHARSET_UTF_8.toString());
- final CoreContainer cores = new CoreContainer(solrHomeDirectory.getAbsolutePath());
- cores.load(solrHomeDirectory.getAbsolutePath(), solrXml);
- cores.setPersistent(false);
+ final CoreContainer cores = createCoreContainer(solrHomeDirectory.getAbsolutePath(), solrXmlString);
return cores;
}
@@ -304,7 +303,7 @@ public class TestSolrXmlPersistence exte
} else if (persistList[idx].contains("@config='solrconfig.xml'")) {
expressions[idx] = persistList[idx].replace("solrconfig.xml", "${solrconfig:solrconfig.xml}");
} else if (persistList[idx].contains("@instanceDir=")) {
- expressions[idx] = persistList[idx].replaceFirst("instanceDir\\='.*?'", "instanceDir='" + which + "'");
+ expressions[idx] = persistList[idx].replaceFirst("instanceDir\\='.*?'", "instanceDir='" + which + "/'");
} else {
expressions[idx] = persistList[idx];
}
@@ -611,14 +610,14 @@ public class TestSolrXmlPersistence exte
" shareSchema=\"${shareSchema:false}\" distribUpdateConnTimeout=\"${distribUpdateConnTimeout:15000}\" \n" +
" distribUpdateSoTimeout=\"${distribUpdateSoTimeout:120000}\" \n" +
" leaderVoteWait=\"${leadVoteWait:32}\" managementPath=\"${manpath:/var/lib/path}\" transientCacheSize=\"${tranSize:128}\"> \n" +
- " <core name=\"SystemVars1\" instanceDir=\"SystemVars1\" shard=\"${shard:32}\" \n" +
+ " <core name=\"SystemVars1\" instanceDir=\"SystemVars1/\" shard=\"${shard:32}\" \n" +
" collection=\"${collection:collection1}\" config=\"${solrconfig:solrconfig.xml}\" \n" +
" schema=\"${schema:schema.xml}\" ulogDir=\"${ulog:./}\" roles=\"${myrole:boss}\" \n" +
" dataDir=\"${data:./}\" loadOnStartup=\"${onStart:true}\" transient=\"${tran:true}\" \n" +
" coreNodeName=\"${coreNode:utterlyridiculous}\" \n" +
" >\n" +
" </core>\n" +
- " <core name=\"SystemVars2\" instanceDir=\"SystemVars2\" shard=\"${shard:32}\" \n" +
+ " <core name=\"SystemVars2\" instanceDir=\"SystemVars2/\" shard=\"${shard:32}\" \n" +
" collection=\"${collection:collection2}\" config=\"${solrconfig:solrconfig.xml}\" \n" +
" coreNodeName=\"${coreNodeName:}\" schema=\"${schema:schema.xml}\">\n" +
" <property name=\"collection\" value=\"{collection:collection2}\"/>\n" +
@@ -632,7 +631,7 @@ public class TestSolrXmlPersistence exte
private static String SOLR_XML_MINIMAL =
"<solr >\n" +
" <cores> \n" +
- " <core name=\"SystemVars1\" instanceDir=\"SystemVars1\" />\n" +
+ " <core name=\"SystemVars1\" instanceDir=\"SystemVars1/\" />\n" +
" </cores>\n" +
"</solr>";
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/LoggingHandlerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/LoggingHandlerTest.java?rev=1498990&r1=1498989&r2=1498990&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/LoggingHandlerTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/LoggingHandlerTest.java Tue Jul 2 15:50:49 2013
@@ -17,15 +17,22 @@
package org.apache.solr.handler.admin;
-import java.util.logging.Logger;
-
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.params.CommonParams;
-import org.apache.solr.logging.jul.JulInfo;
+import org.apache.solr.logging.log4j.Log4jInfo;
import org.junit.BeforeClass;
import org.junit.Test;
+
public class LoggingHandlerTest extends SolrTestCaseJ4 {
+
+ // TODO: This only tests Log4j at the moment, as that's what's defined
+ // through the CoreContainer.
+
+ // TODO: Would be nice to throw an exception on trying to set a
+ // log level that doesn't exist
@BeforeClass
public static void beforeClass() throws Exception {
@@ -35,7 +42,8 @@ public class LoggingHandlerTest extends
@Test
public void testLogLevelHandlerOutput() throws Exception {
Logger tst = Logger.getLogger("org.apache.solr.SolrTestCaseJ4");
- JulInfo wrap = new JulInfo(tst.getName(), tst);
+ tst.setLevel(Level.INFO);
+ Log4jInfo wrap = new Log4jInfo(tst.getName(), tst);
assertQ("Show Log Levels OK",
req(CommonParams.QT,"/admin/logging")
@@ -46,8 +54,8 @@ public class LoggingHandlerTest extends
assertQ("Set and remove a level",
req(CommonParams.QT,"/admin/logging",
"set", "org.xxx.yyy.abc:null",
- "set", "org.xxx.yyy.zzz:FINEST")
- ,"//arr[@name='loggers']/lst/str[.='org.xxx.yyy.zzz']/../str[@name='level'][.='FINEST']"
+ "set", "org.xxx.yyy.zzz:TRACE")
+ ,"//arr[@name='loggers']/lst/str[.='org.xxx.yyy.zzz']/../str[@name='level'][.='TRACE']"
);
}
}
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java?rev=1498990&r1=1498989&r2=1498990&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java Tue Jul 2 15:50:49 2013
@@ -17,17 +17,18 @@
package org.apache.solr.handler.admin;
-import java.util.Arrays;
-import java.util.EnumSet;
-
import org.apache.solr.common.luke.FieldFlag;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.schema.IndexSchema;
import org.apache.solr.util.AbstractSolrTestCase;
+import org.apache.solr.util.TestHarness;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
+import java.util.Arrays;
+import java.util.EnumSet;
+
/**
* :TODO: currently only tests some of the utilities in the LukeRequestHandler
*/
@@ -156,7 +157,7 @@ public class LukeRequestHandlerTest exte
try {
// First, determine that the two fields ARE there
String response = h.query(req);
- assertNull(h.validateXPath(response,
+ assertNull(TestHarness.validateXPath(response,
getFieldXPathPrefix("solr_t") + "[@name='index']",
getFieldXPathPrefix("solr_s") + "[@name='index']"
));
@@ -165,7 +166,7 @@ public class LukeRequestHandlerTest exte
for (String f : Arrays.asList("solr_ti",
"solr_td", "solr_pl", "solr_dt", "solr_b")) {
- assertNotNull(h.validateXPath(response,
+ assertNotNull(TestHarness.validateXPath(response,
getFieldXPathPrefix(f) + "[@name='index']"));
}
@@ -175,7 +176,7 @@ public class LukeRequestHandlerTest exte
for (String f : Arrays.asList("solr_t", "solr_s", "solr_ti",
"solr_td", "solr_pl", "solr_dt", "solr_b")) {
- assertNull(h.validateXPath(response,
+ assertNull(TestHarness.validateXPath(response,
getFieldXPathPrefix(f) + "[@name='index']"));
}
} catch (Exception e) {
@@ -187,7 +188,7 @@ public class LukeRequestHandlerTest exte
SolrQueryRequest req = req("qt", "/admin/luke", "show", "schema");
String xml = h.query(req);
- String r = h.validateXPath
+ String r = TestHarness.validateXPath
(xml,
field("text") + "/arr[@name='copySources']/str[.='title']",
field("text") + "/arr[@name='copySources']/str[.='subject']",
@@ -217,7 +218,7 @@ public class LukeRequestHandlerTest exte
SolrQueryRequest req = req("qt", "/admin/luke", "show", "schema", "indent", "on");
String xml = h.query(req);
- String result = h.validateXPath(xml, field("bday") + "/arr[@name='copyDests']/str[.='catchall_t']");
+ String result = TestHarness.validateXPath(xml, field("bday") + "/arr[@name='copyDests']/str[.='catchall_t']");
assertNull(xml, result);
// Put back the configuration expected by the rest of the tests in this suite
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/component/BadComponentTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/component/BadComponentTest.java?rev=1498990&r1=1498989&r2=1498990&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/component/BadComponentTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/component/BadComponentTest.java Tue Jul 2 15:50:49 2013
@@ -19,7 +19,6 @@ package org.apache.solr.handler.componen
*/
import org.apache.solr.SolrTestCaseJ4;
-import org.apache.solr.common.SolrException;
import org.junit.Test;
/**
@@ -34,14 +33,7 @@ public class BadComponentTest extends So
ignoreException(".*QueryElevationComponent.*");
System.setProperty("elevate.file", "foo.xml");
initCore("solrconfig-elevate.xml", "schema12.xml");
- assertTrue(false);
- } catch (RuntimeException e) {
- //TODO: better way of checking this?
- if (e.getCause() instanceof SolrException){
- assertTrue(true);
- } else {
- assertTrue(false);
- }
+ assertTrue(hasInitException("QueryElevationComponent"));
} finally {
System.clearProperty("elevate.file");
resetExceptionIgnores();
Modified: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/MergeIndexesExampleTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/MergeIndexesExampleTestBase.java?rev=1498990&r1=1498989&r2=1498990&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/MergeIndexesExampleTestBase.java (original)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/MergeIndexesExampleTestBase.java Tue Jul 2 15:50:49 2013
@@ -17,10 +17,6 @@
package org.apache.solr.client.solrj;
-import java.io.File;
-import java.io.IOException;
-import java.util.Arrays;
-
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.client.solrj.request.AbstractUpdateRequest;
import org.apache.solr.client.solrj.request.CoreAdminRequest;
@@ -32,9 +28,12 @@ import org.apache.solr.common.params.Sol
import org.apache.solr.core.CoreContainer;
import org.apache.solr.core.SolrCore;
import org.apache.solr.util.ExternalPaths;
-import org.junit.AfterClass;
import org.junit.BeforeClass;
+import java.io.File;
+import java.io.IOException;
+import java.util.Arrays;
+
/**
* Abstract base class for testing merge indexes command
*
@@ -42,7 +41,8 @@ import org.junit.BeforeClass;
*
*/
public abstract class MergeIndexesExampleTestBase extends SolrExampleTestBase {
- protected static CoreContainer cores;
+
+ protected CoreContainer cores;
private String saveProp;
private File dataDir2;
@@ -56,13 +56,12 @@ public abstract class MergeIndexesExampl
if (dataDir == null) {
createTempDir();
}
- cores = new CoreContainer();
}
-
- @AfterClass
- public static void afterClass() {
- cores.shutdown();
- cores = null;
+
+ protected void setupCoreContainer() {
+ cores = new CoreContainer(getSolrHome());
+ cores.load();
+ //cores = CoreContainer.createAndLoad(getSolrHome(), new File(TEMP_DIR, "solr.xml"));
}
@Override
@@ -71,17 +70,19 @@ public abstract class MergeIndexesExampl
System.setProperty("solr.directoryFactory", "solr.StandardDirectoryFactory");
super.setUp();
- SolrCore.log.info("CORES=" + cores + " : " + cores.getCoreNames());
- cores.setPersistent(false);
-
// setup datadirs
- System.setProperty( "solr.core0.data.dir", SolrTestCaseJ4.dataDir.getCanonicalPath() );
-
+ System.setProperty( "solr.core0.data.dir", SolrTestCaseJ4.dataDir.getCanonicalPath() );
+
dataDir2 = new File(TEMP_DIR, getClass().getName() + "-"
+ System.currentTimeMillis());
dataDir2.mkdirs();
-
- System.setProperty( "solr.core1.data.dir", this.dataDir2.getCanonicalPath() );
+
+ System.setProperty( "solr.core1.data.dir", this.dataDir2.getCanonicalPath() );
+
+ setupCoreContainer();
+ SolrCore.log.info("CORES=" + cores + " : " + cores.getCoreNames());
+ cores.setPersistent(false);
+
}
@Override
@@ -96,6 +97,8 @@ public abstract class MergeIndexesExampl
System.err.println("!!!! WARNING: best effort to remove " + dataDir2.getAbsolutePath() + " FAILED !!!!!");
}
}
+
+ cores.shutdown();
if (saveProp == null) System.clearProperty("solr.directoryFactory");
else System.setProperty("solr.directoryFactory", saveProp);
Modified: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/MultiCoreExampleTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/MultiCoreExampleTestBase.java?rev=1498990&r1=1498989&r2=1498990&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/MultiCoreExampleTestBase.java (original)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/MultiCoreExampleTestBase.java Tue Jul 2 15:50:49 2013
@@ -17,8 +17,6 @@
package org.apache.solr.client.solrj;
-import java.io.File;
-
import org.apache.solr.client.solrj.request.AbstractUpdateRequest.ACTION;
import org.apache.solr.client.solrj.request.CoreAdminRequest;
import org.apache.solr.client.solrj.request.CoreAdminRequest.Unload;
@@ -30,10 +28,10 @@ import org.apache.solr.common.util.Named
import org.apache.solr.core.CoreContainer;
import org.apache.solr.core.SolrCore;
import org.apache.solr.util.ExternalPaths;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
import org.junit.Test;
+import java.io.File;
+
/**
*
@@ -41,30 +39,21 @@ import org.junit.Test;
*/
public abstract class MultiCoreExampleTestBase extends SolrExampleTestBase
{
- protected static CoreContainer cores;
+ protected CoreContainer cores;
private File dataDir2;
private File dataDir1;
@Override public String getSolrHome() { return ExternalPaths.EXAMPLE_MULTICORE_HOME; }
-
- @BeforeClass
- public static void beforeThisClass2() throws Exception {
+ protected void setupCoreContainer() {
cores = new CoreContainer();
- }
-
- @AfterClass
- public static void afterClass() {
- cores.shutdown();
+ cores.load();
}
@Override public void setUp() throws Exception {
super.setUp();
- SolrCore.log.info("CORES=" + cores + " : " + cores.getCoreNames());
- cores.setPersistent(false);
-
dataDir1 = new File(TEMP_DIR, getClass().getName() + "-core0-"
+ System.currentTimeMillis());
dataDir1.mkdirs();
@@ -74,7 +63,14 @@ public abstract class MultiCoreExampleTe
dataDir2.mkdirs();
System.setProperty( "solr.core0.data.dir", this.dataDir1.getCanonicalPath() );
- System.setProperty( "solr.core1.data.dir", this.dataDir2.getCanonicalPath() );
+ System.setProperty( "solr.core1.data.dir", this.dataDir2.getCanonicalPath() );
+
+ setupCoreContainer();
+
+ SolrCore.log.info("CORES=" + cores + " : " + cores.getCoreNames());
+ cores.setPersistent(false);
+
+
}
@Override
@@ -89,6 +85,8 @@ public abstract class MultiCoreExampleTe
System.err.println("!!!! WARNING: best effort to remove " + dataDir2.getAbsolutePath() + " FAILED !!!!!");
}
}
+
+ cores.shutdown();
}
@Override
Modified: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTestCase.java?rev=1498990&r1=1498989&r2=1498990&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTestCase.java (original)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTestCase.java Tue Jul 2 15:50:49 2013
@@ -51,6 +51,7 @@ public abstract class AbstractEmbeddedSo
super.setUp();
System.setProperty("solr.solr.home", SOLR_HOME.getAbsolutePath());
+ System.out.println("Solr home: " + SOLR_HOME.getAbsolutePath());
//The index is always stored within a temporary directory
createTempDir();
@@ -61,7 +62,8 @@ public abstract class AbstractEmbeddedSo
System.setProperty("dataDir2", dataDir2.getAbsolutePath());
System.setProperty("tempDir", tempDir.getAbsolutePath());
System.setProperty("tests.shardhandler.randomSeed", Long.toString(random().nextLong()));
- cores = new CoreContainer(SOLR_HOME.getAbsolutePath(), getSolrXml());
+ cores = CoreContainer.createAndLoad(SOLR_HOME.getAbsolutePath(), getSolrXml());
+ cores.setPersistent(false);
}
protected abstract File getSolrXml() throws Exception;
Modified: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/MergeIndexesEmbeddedTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/MergeIndexesEmbeddedTest.java?rev=1498990&r1=1498989&r2=1498990&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/MergeIndexesEmbeddedTest.java (original)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/MergeIndexesEmbeddedTest.java Tue Jul 2 15:50:49 2013
@@ -17,8 +17,6 @@
package org.apache.solr.client.solrj.embedded;
-import java.io.File;
-
import org.apache.solr.client.solrj.MergeIndexesExampleTestBase;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.core.SolrCore;
@@ -36,10 +34,6 @@ public class MergeIndexesEmbeddedTest ex
// TODO: fix this test to use MockDirectoryFactory
System.clearProperty("solr.directoryFactory");
super.setUp();
-
- File home = new File(getSolrHome());
- File f = new File(home, "solr.xml");
- cores.load(getSolrHome(), f);
}
@Override
Modified: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/MultiCoreEmbeddedTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/MultiCoreEmbeddedTest.java?rev=1498990&r1=1498989&r2=1498990&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/MultiCoreEmbeddedTest.java (original)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/MultiCoreEmbeddedTest.java Tue Jul 2 15:50:49 2013
@@ -17,8 +17,6 @@
package org.apache.solr.client.solrj.embedded;
-import java.io.File;
-
import org.apache.solr.client.solrj.MultiCoreExampleTestBase;
import org.apache.solr.client.solrj.SolrServer;
@@ -35,10 +33,6 @@ public class MultiCoreEmbeddedTest exten
// TODO: fix this test to use MockDirectoryFactory
System.clearProperty("solr.directoryFactory");
super.setUp();
-
- File home = new File( getSolrHome() );
- File f = new File( home, "solr.xml" );
- cores.load( getSolrHome(), f );
}
@Override
Modified: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestSolrProperties.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestSolrProperties.java?rev=1498990&r1=1498989&r2=1498990&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestSolrProperties.java (original)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestSolrProperties.java Tue Jul 2 15:50:49 2013
@@ -17,20 +17,16 @@
package org.apache.solr.client.solrj.embedded;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStreamReader;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.xpath.*;
-
+import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
+import com.google.common.io.ByteStreams;
import org.apache.commons.io.IOUtils;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.request.AbstractUpdateRequest.ACTION;
-import org.apache.solr.client.solrj.request.*;
+import org.apache.solr.client.solrj.request.CoreAdminRequest;
+import org.apache.solr.client.solrj.request.QueryRequest;
+import org.apache.solr.client.solrj.request.UpdateRequest;
import org.apache.solr.client.solrj.response.CoreAdminResponse;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.core.CoreContainer;
@@ -46,7 +42,17 @@ import org.slf4j.LoggerFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
-import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.xpath.XPath;
+import javax.xml.xpath.XPathConstants;
+import javax.xml.xpath.XPathExpressionException;
+import javax.xml.xpath.XPathFactory;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
/**
*
@@ -75,6 +81,17 @@ public class TestSolrProperties extends
public void tearDown() throws Exception {
super.tearDown();
}
+
+ private static void dumpFile(File fileToDump) throws IOException {
+ System.out.println("Dumping " + fileToDump.getAbsolutePath());
+ InputStream is = new FileInputStream(fileToDump);
+ try {
+ ByteStreams.copy(is, System.out);
+ }
+ finally {
+ IOUtils.closeQuietly(is);
+ }
+ }
@Override
protected File getSolrXml() throws Exception {
@@ -107,6 +124,10 @@ public class TestSolrProperties extends
@Test
public void testProperties() throws Exception {
+
+ String persistedSolrXml = new File(tempDir, SOLR_PERSIST_XML).getAbsolutePath();
+ log.info("persistedSolrXml: {}", persistedSolrXml);
+
UpdateRequest up = new UpdateRequest();
up.setAction(ACTION.COMMIT, true, true);
up.deleteByQuery("*:*");
@@ -176,14 +197,14 @@ public class TestSolrProperties extends
long after = mcr.getStartTime(name).getTime();
assertTrue("should have more recent time: " + after + "," + before, after > before);
- mcr = CoreAdminRequest.persist(SOLR_PERSIST_XML, coreadmin);
+ mcr = CoreAdminRequest.persist(persistedSolrXml, coreadmin);
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
- FileInputStream fis = new FileInputStream(new File(tempDir, SOLR_PERSIST_XML));
+ FileInputStream fis = new FileInputStream(new File(persistedSolrXml));
try {
Document document = builder.parse(fis);
fis.close();
- fis = new FileInputStream(new File(tempDir, SOLR_PERSIST_XML));
+ fis = new FileInputStream(new File(persistedSolrXml));
String solrPersistXml = IOUtils.toString(new InputStreamReader(fis, "UTF-8"));
//System.out.println("xml:" + solrPersistXml);
assertTrue("\"/solr/cores[@defaultCoreName='core0']\" doesn't match in:\n" + solrPersistXml,
@@ -204,14 +225,14 @@ public class TestSolrProperties extends
CoreAdminRequest.renameCore(name, "renamed_core", coreadmin);
- mcr = CoreAdminRequest.persist(SOLR_PERSIST_XML, getRenamedSolrAdmin());
+ mcr = CoreAdminRequest.persist(persistedSolrXml, getRenamedSolrAdmin());
// fis = new FileInputStream(new File(tempDir, SOLR_PERSIST_XML));
// String solrPersistXml = IOUtils.toString(fis);
// System.out.println("xml:" + solrPersistXml);
// fis.close();
- fis = new FileInputStream(new File(tempDir, SOLR_PERSIST_XML));
+ fis = new FileInputStream(new File(persistedSolrXml));
try {
Document document = builder.parse(fis);
assertTrue(exists("/solr/cores/core[@name='renamed_core']", document));
@@ -235,14 +256,14 @@ public class TestSolrProperties extends
// System.out.println("xml:" + solrPersistXml);
// fis.close();
- mcr = CoreAdminRequest.persist(SOLR_PERSIST_XML, getRenamedSolrAdmin());
+ mcr = CoreAdminRequest.persist(persistedSolrXml, getRenamedSolrAdmin());
// fis = new FileInputStream(new File(solrXml.getParent(), SOLR_PERSIST_XML));
// solrPersistXml = IOUtils.toString(fis);
// System.out.println("xml:" + solrPersistXml);
// fis.close();
- fis = new FileInputStream(new File(tempDir, SOLR_PERSIST_XML));
+ fis = new FileInputStream(new File(persistedSolrXml));
try {
Document document = builder.parse(fis);
assertTrue(exists("/solr/cores/core[@name='collection1' and @instanceDir='.']", document));
@@ -259,9 +280,9 @@ public class TestSolrProperties extends
// System.out.println("xml:" + solrPersistXml);
// fis.close();
- cores = new CoreContainer(SOLR_HOME.getAbsolutePath(), new File(tempDir, SOLR_PERSIST_XML));
+ cores = CoreContainer.createAndLoad(SOLR_HOME.getAbsolutePath(), new File(persistedSolrXml));
- mcr = CoreAdminRequest.persist(SOLR_PERSIST_XML, getRenamedSolrAdmin());
+ //mcr = CoreAdminRequest.persist(SOLR_PERSIST_XML, getRenamedSolrAdmin());
// fis = new FileInputStream(new File(solrXml.getParent(),
// SOLR_PERSIST_XML));
Modified: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java?rev=1498990&r1=1498989&r2=1498990&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java (original)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java Tue Jul 2 15:50:49 2013
@@ -17,8 +17,8 @@
package org.apache.solr.client.solrj.request;
-import java.io.File;
-
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
+import org.apache.commons.io.FileUtils;
import org.apache.solr.SolrIgnoredThreadsFilter;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.embedded.AbstractEmbeddedSolrServerTestCase;
@@ -27,14 +27,13 @@ import org.apache.solr.common.SolrExcept
import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.core.SolrCore;
-import org.apache.commons.io.FileUtils;
import org.junit.After;
import org.junit.BeforeClass;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
+import java.io.File;
@ThreadLeakFilters(defaultFilters = true, filters = {SolrIgnoredThreadsFilter.class})
public class TestCoreAdmin extends AbstractEmbeddedSolrServerTestCase {
@@ -67,6 +66,8 @@ public class TestCoreAdmin extends Abstr
File tmp = new File(TEMP_DIR, "solrtest-" + getTestClass().getSimpleName() + "-" + System.currentTimeMillis());
tmp.mkdirs();
+
+ log.info("Creating cores underneath {}", tmp);
File dataDir = new File(tmp, this.getTestName()
+ System.currentTimeMillis() + "-" + "data");
Modified: lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java?rev=1498990&r1=1498989&r2=1498990&view=diff
==============================================================================
--- lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java (original)
+++ lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java Tue Jul 2 15:50:49 2013
@@ -17,26 +17,28 @@
package org.apache.solr;
-import java.io.*;
-import java.util.*;
-import java.util.logging.*;
-
-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.io.FileUtils;
-import org.apache.lucene.util.Constants;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.QuickPatchThreadsFilter;
import org.apache.solr.client.solrj.util.ClientUtils;
-import org.apache.solr.common.*;
+import org.apache.solr.common.SolrException;
+import org.apache.solr.common.SolrInputDocument;
+import org.apache.solr.common.SolrInputField;
import org.apache.solr.common.cloud.SolrZkClient;
-import org.apache.solr.common.params.*;
+import org.apache.solr.common.params.CommonParams;
+import org.apache.solr.common.params.ModifiableSolrParams;
+import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.util.XML;
import org.apache.solr.core.CoreContainer;
import org.apache.solr.core.SolrConfig;
import org.apache.solr.core.SolrCore;
import org.apache.solr.handler.JsonUpdateRequestHandler;
-import org.apache.solr.request.*;
+import org.apache.solr.request.LocalSolrQueryRequest;
+import org.apache.solr.request.SolrQueryRequest;
+import org.apache.solr.request.SolrRequestHandler;
import org.apache.solr.schema.IndexSchema;
import org.apache.solr.schema.SchemaField;
import org.apache.solr.search.SolrIndexSearcher;
@@ -44,7 +46,10 @@ import org.apache.solr.servlet.DirectSol
import org.apache.solr.util.AbstractSolrTestCase;
import org.apache.solr.util.RevertDefaultThreadHandlerRule;
import org.apache.solr.util.TestHarness;
-import org.junit.*;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.ClassRule;
+import org.junit.Rule;
import org.junit.rules.RuleChain;
import org.junit.rules.TestRule;
import org.noggit.CharArr;
@@ -54,9 +59,22 @@ 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 javax.xml.xpath.XPathExpressionException;
+import java.io.File;
+import java.io.IOException;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.logging.ConsoleHandler;
+import java.util.logging.Handler;
+import java.util.logging.Level;
+
+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
@@ -405,6 +423,40 @@ public abstract class SolrTestCaseJ4 ext
("standard",0,20,CommonParams.VERSION,"2.2");
}
+ public static CoreContainer createCoreContainer(String solrHome, String solrXML) {
+ testSolrHome = checkNotNull(solrHome);
+ if (dataDir == null)
+ createTempDir();
+ h = new TestHarness(solrHome, solrXML);
+ lrf = h.getRequestFactory("standard", 0, 20, CommonParams.VERSION, "2.2");
+ return h.getCoreContainer();
+ }
+
+ public static CoreContainer createDefaultCoreContainer(String solrHome) {
+ testSolrHome = checkNotNull(solrHome);
+ if (dataDir == null)
+ createTempDir();
+ h = new TestHarness("collection1", dataDir.getAbsolutePath(), "solrconfig.xml", "schema.xml");
+ lrf = h.getRequestFactory("standard", 0, 20, CommonParams.VERSION, "2.2");
+ return h.getCoreContainer();
+ }
+
+ public static boolean hasInitException(String message) {
+ for (Map.Entry<String, Exception> entry : h.getCoreContainer().getCoreInitFailures().entrySet()) {
+ if (entry.getValue().getMessage().indexOf(message) != -1)
+ return true;
+ }
+ return false;
+ }
+
+ public static boolean hasInitException(Class<? extends Exception> exceptionType) {
+ for (Map.Entry<String, Exception> entry : h.getCoreContainer().getCoreInitFailures().entrySet()) {
+ if (exceptionType.isAssignableFrom(entry.getValue().getClass()))
+ return true;
+ }
+ return false;
+ }
+
/** Subclasses that override setUp can optionally call this method
* to log the fact that their setUp process has ended.
*/
@@ -1451,12 +1503,12 @@ public abstract class SolrTestCaseJ4 ext
return result;
}
- public void assertXmlFile(final File file, String... xpath)
+ public static void assertXmlFile(final File file, String... xpath)
throws IOException, SAXException {
try {
String xml = FileUtils.readFileToString(file, "UTF-8");
- String results = h.validateXPath(xml, xpath);
+ String results = TestHarness.validateXPath(xml, xpath);
if (null != results) {
String msg = "File XPath failure: file=" + file.getPath() + " xpath="
+ results + "\n\nxml was: " + xml;
Modified: lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/util/BaseTestHarness.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/util/BaseTestHarness.java?rev=1498990&r1=1498989&r2=1498990&view=diff
==============================================================================
--- lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/util/BaseTestHarness.java (original)
+++ lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/util/BaseTestHarness.java Tue Jul 2 15:50:49 2013
@@ -33,10 +33,10 @@ import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
abstract public class BaseTestHarness {
- private final ThreadLocal<DocumentBuilder> builderTL = new ThreadLocal<DocumentBuilder>();
- private final ThreadLocal<XPath> xpathTL = new ThreadLocal<XPath>();
+ private static final ThreadLocal<DocumentBuilder> builderTL = new ThreadLocal<DocumentBuilder>();
+ private static final ThreadLocal<XPath> xpathTL = new ThreadLocal<XPath>();
- public DocumentBuilder getXmlDocumentBuilder() {
+ public static DocumentBuilder getXmlDocumentBuilder() {
try {
DocumentBuilder builder = builderTL.get();
if (builder == null) {
@@ -49,7 +49,7 @@ abstract public class BaseTestHarness {
}
}
- public XPath getXpath() {
+ public static XPath getXpath() {
try {
XPath xpath = xpathTL.get();
if (xpath == null) {
@@ -71,7 +71,7 @@ abstract public class BaseTestHarness {
* @param tests Array of XPath strings to test (in boolean mode) on the xml
* @return null if all good, otherwise the first test that fails.
*/
- public String validateXPath(String xml, String... tests)
+ public static String validateXPath(String xml, String... tests)
throws XPathExpressionException, SAXException {
if (tests==null || tests.length == 0) return null;
Modified: lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/util/RestTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/util/RestTestBase.java?rev=1498990&r1=1498989&r2=1498990&view=diff
==============================================================================
--- lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/util/RestTestBase.java (original)
+++ lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/util/RestTestBase.java Tue Jul 2 15:50:49 2013
@@ -127,7 +127,7 @@ abstract public class RestTestBase exten
}
*/
- String results = restTestHarness.validateXPath(response, tests);
+ String results = TestHarness.validateXPath(response, tests);
if (null != results) {
String msg = "REQUEST FAILED: xpath=" + results
Modified: lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java?rev=1498990&r1=1498989&r2=1498990&view=diff
==============================================================================
--- lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java (original)
+++ lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java Tue Jul 2 15:50:49 2013
@@ -17,21 +17,17 @@
package org.apache.solr.util;
+import com.google.common.base.Charsets;
import org.apache.solr.common.SolrException;
-import org.apache.solr.common.cloud.Slice;
import org.apache.solr.common.params.CommonParams;
import org.apache.solr.common.util.NamedList;
-import org.apache.solr.core.Config;
-import org.apache.solr.core.ConfigSolrXmlOld;
+import org.apache.solr.common.util.NamedList.NamedListEntry;
+import org.apache.solr.core.ConfigSolr;
+import org.apache.solr.core.CoreContainer;
import org.apache.solr.core.SolrConfig;
import org.apache.solr.core.SolrCore;
-import org.apache.solr.core.CoreContainer;
-import org.apache.solr.core.CoreDescriptor;
import org.apache.solr.core.SolrResourceLoader;
import org.apache.solr.handler.UpdateRequestHandler;
-import org.apache.solr.logging.ListenerConfig;
-import org.apache.solr.logging.LogWatcher;
-import org.apache.solr.logging.jul.JulWatcher;
import org.apache.solr.request.LocalSolrQueryRequest;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.request.SolrRequestHandler;
@@ -41,9 +37,6 @@ import org.apache.solr.response.SolrQuer
import org.apache.solr.schema.IndexSchema;
import org.apache.solr.schema.IndexSchemaFactory;
import org.apache.solr.servlet.DirectSolrConnection;
-import org.apache.solr.common.util.NamedList.NamedListEntry;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
import java.io.ByteArrayInputStream;
import java.io.File;
@@ -52,8 +45,6 @@ import java.io.StringWriter;
import java.util.HashMap;
import java.util.Map;
-import javax.xml.parsers.ParserConfigurationException;
-
/**
* This class provides a simple harness that may be useful when
@@ -107,19 +98,8 @@ public class TestHarness extends BaseTes
SolrConfig solrConfig,
String schemaFile) {
this( coreName, dataDirectory, solrConfig, IndexSchemaFactory.buildIndexSchema(schemaFile, solrConfig));
- }
- /**
- * @param coreName to initialize
- * @param dataDirectory path for index data, will not be cleaned up
- * @param solrConfig solrconfig instance
- * @param indexSchema schema instance
- */
- public TestHarness( String coreName,
- String dataDirectory,
- SolrConfig solrConfig,
- IndexSchema indexSchema) {
- this(coreName, new Initializer(coreName, dataDirectory, solrConfig, indexSchema));
- }
+ }
+
/**
* @param dataDirectory path for index data, will not be cleaned up
* @param solrConfig solronfig instance
@@ -138,18 +118,26 @@ public class TestHarness extends BaseTes
public TestHarness( String dataDirectory,
SolrConfig solrConfig,
IndexSchema indexSchema) {
- this(null, new Initializer(null, dataDirectory, solrConfig, indexSchema));
+ this(CoreContainer.DEFAULT_DEFAULT_CORE_NAME, dataDirectory, solrConfig, indexSchema);
}
-
- public TestHarness(String coreName, CoreContainer.Initializer init) {
- try {
- container = init.initialize();
+ /**
+ * @param coreName to initialize
+ * @param dataDir path for index data, will not be cleaned up
+ * @param solrConfig solrconfig resource name
+ * @param indexSchema schema resource name
+ */
+ public TestHarness(String coreName, String dataDir, String solrConfig, String indexSchema) {
+ try {
if (coreName == null)
coreName = CoreContainer.DEFAULT_DEFAULT_CORE_NAME;
-
this.coreName = coreName;
+ SolrResourceLoader loader = new SolrResourceLoader(SolrResourceLoader.locateSolrHome());
+ ConfigSolr config = getTestHarnessConfig(coreName, dataDir, solrConfig, indexSchema);
+ container = new CoreContainer(loader, config);
+ container.load();
+
updater = new UpdateRequestHandler();
updater.init( null );
} catch (Exception e) {
@@ -157,81 +145,50 @@ public class TestHarness extends BaseTes
}
}
- // Creates a container based on infos needed to create one core
- static class Initializer extends CoreContainer.Initializer {
- String coreName;
- String dataDirectory;
- SolrConfig solrConfig;
- IndexSchema indexSchema;
- public Initializer(String coreName,
- String dataDirectory,
- SolrConfig solrConfig,
- IndexSchema indexSchema) {
- if (coreName == null)
- coreName = CoreContainer.DEFAULT_DEFAULT_CORE_NAME;
- this.coreName = coreName;
- this.dataDirectory = dataDirectory;
- this.solrConfig = solrConfig;
- this.indexSchema = indexSchema;
- }
- public String getCoreName() {
- return coreName;
- }
- @Override
- public CoreContainer initialize() {
- CoreContainer container;
- try {
- String solrHome = SolrResourceLoader.locateSolrHome();
- container = new CoreContainer(new SolrResourceLoader(solrHome)) {
- {
- String hostPort = System.getProperty("hostPort", "8983");
- String hostContext = System.getProperty("hostContext", "solr");
- defaultCoreName = CoreContainer.DEFAULT_DEFAULT_CORE_NAME;
- initShardHandler();
- zkSys.initZooKeeper(this, solrHome, System.getProperty("zkHost"), 30000, hostPort, hostContext, null, "30000", true, 30000, 30000);
- ByteArrayInputStream is = new ByteArrayInputStream(ConfigSolrXmlOld.DEF_SOLR_XML.getBytes("UTF-8"));
- Config config = new Config(loader, null, new InputSource(is), null, false);
- cfg = new ConfigSolrXmlOld(config, this);
- }
- };
- } catch (ParserConfigurationException e) {
- throw new RuntimeException(e);
- } catch (IOException e) {
- throw new RuntimeException(e);
- } catch (SAXException e) {
- throw new RuntimeException(e);
- }
- LogWatcher<?> logging = new JulWatcher("test");
- logging.registerListener(new ListenerConfig());
- container.setLogging(logging);
-
- CoreDescriptor dcore = new CoreDescriptor(container, coreName, solrConfig.getResourceLoader().getInstanceDir());
- if (container.isZooKeeperAware()) {
- container.getZkController().preRegister(dcore);
- }
- dcore.setConfigName(solrConfig.getResourceName());
- dcore.setSchemaName(indexSchema.getResourceName());
-
- if (container.getZkController() != null) {
- container.preRegisterInZk(dcore);
- }
-
- SolrCore core = new SolrCore(coreName, dataDirectory, solrConfig, indexSchema, dcore);
-
- if (container.isZooKeeperAware() && Slice.CONSTRUCTION.equals(dcore.getCloudDescriptor().getShardState())) {
- // set update log to buffer before publishing the core
- core.getUpdateHandler().getUpdateLog().bufferUpdates();
- }
-
- container.register(coreName, core, false);
+ public TestHarness(String coreName, String dataDir, SolrConfig solrConfig, IndexSchema indexSchema) {
+ this(coreName, dataDir, solrConfig.getResourceName(), indexSchema.getResourceName());
+ }
- // TODO: we should be exercising the *same* core container initialization code, not equivalent code!
- if (container.getZkController() == null && core.getUpdateHandler().getUpdateLog() != null) {
- // always kick off recovery if we are in standalone mode.
- core.getUpdateHandler().getUpdateLog().recoverFromLog();
- }
- return container;
- }
+ /**
+ * Create a TestHarness using a specific solr home directory and solr xml
+ * @param solrHome the solr home directory
+ * @param solrXml a File pointing to a solr.xml configuration
+ */
+ public TestHarness(String solrHome, String solrXml) {
+ this(new SolrResourceLoader(solrHome),
+ ConfigSolr.fromInputStream(null, new ByteArrayInputStream(solrXml.getBytes(Charsets.UTF_8))));
+ }
+
+ /**
+ * Create a TestHarness using a specific resource loader and config
+ * @param loader the SolrResourceLoader to use
+ * @param config the ConfigSolr to use
+ */
+ public TestHarness(SolrResourceLoader loader, ConfigSolr config) {
+ container = new CoreContainer(loader, config);
+ container.load();
+ updater = new UpdateRequestHandler();
+ updater.init(null);
+ }
+
+ private static ConfigSolr getTestHarnessConfig(String coreName, String dataDir,
+ String solrConfig, String schema) {
+ String solrxml = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n"
+ + "<solr persistent=\"false\">\n"
+ + " <logging enabled=\"true\"/>\n"
+ + " <cores adminPath=\"/admin/cores\" defaultCoreName=\""
+ + CoreContainer.DEFAULT_DEFAULT_CORE_NAME
+ + "\""
+ + " host=\"${host:}\" hostPort=\"${hostPort:}\" hostContext=\"${hostContext:}\""
+ + " distribUpdateSoTimeout=\"30000\""
+ + " zkClientTimeout=\"${zkClientTimeout:30000}\" distribUpdateConnTimeout=\"30000\""
+ + ">\n"
+ + " <core name=\"" + coreName + "\" config=\"" + solrConfig
+ + "\" schema=\"" + schema + "\" dataDir=\"" + dataDir
+ + "\" transient=\"false\" loadOnStartup=\"true\""
+ + " shard=\"${shard:shard1}\" collection=\"${collection:collection1}\" instanceDir=\"" + coreName + "/\" />\n"
+ + " </cores>\n" + "</solr>";
+ return ConfigSolr.fromString(new SolrResourceLoader(dataDir), solrxml);
}
public CoreContainer getCoreContainer() {