You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ha...@apache.org on 2013/08/30 17:06:49 UTC
svn commit: r1518989 [9/10] - in /lucene/dev/branches/lucene3069: ./
dev-tools/ dev-tools/idea/solr/contrib/velocity/ dev-tools/maven/
dev-tools/maven/solr/core/src/java/ lucene/ lucene/analysis/
lucene/analysis/common/ lucene/analysis/common/src/java/...
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/TestRandomDVFaceting.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/TestRandomDVFaceting.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/TestRandomDVFaceting.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/TestRandomDVFaceting.java Fri Aug 30 15:06:42 2013
@@ -39,7 +39,7 @@ import org.junit.Test;
* to the indexed facet results as if it were just another faceting method.
*/
@Slow
-@SuppressCodecs({"Lucene40", "Lucene41"})
+@SuppressCodecs({"Lucene40", "Lucene41", "Lucene42"})
public class TestRandomDVFaceting extends SolrTestCaseJ4 {
@BeforeClass
@@ -162,6 +162,8 @@ public class TestRandomDVFaceting extend
SchemaField sf = req.getSchema().getField(ftype.fname);
boolean multiValued = sf.getType().multiValuedFieldCache();
+ boolean indexed = sf.indexed();
+ boolean numeric = sf.getType().getNumericType() != null;
int offset = 0;
if (rand.nextInt(100) < 20) {
@@ -179,8 +181,21 @@ public class TestRandomDVFaceting extend
params.add("facet.limit", Integer.toString(limit));
}
- if (rand.nextBoolean()) {
- params.add("facet.sort", rand.nextBoolean() ? "index" : "count");
+ // the following two situations cannot work for unindexed single-valued numerics:
+ // (currently none of the dv fields in this test config)
+ // facet.sort = index
+ // facet.minCount = 0
+ if (!numeric || sf.multiValued()) {
+ if (rand.nextBoolean()) {
+ params.add("facet.sort", rand.nextBoolean() ? "index" : "count");
+ }
+
+ if (rand.nextInt(100) < 10) {
+ params.add("facet.mincount", Integer.toString(rand.nextInt(5)));
+ }
+ } else {
+ params.add("facet.sort", "count");
+ params.add("facet.mincount", Integer.toString(1+rand.nextInt(5)));
}
if ((ftype.vals instanceof SVal) && rand.nextInt(100) < 20) {
@@ -192,10 +207,6 @@ public class TestRandomDVFaceting extend
params.add("facet.prefix", prefix);
}
- if (rand.nextInt(100) < 10) {
- params.add("facet.mincount", Integer.toString(rand.nextInt(5)));
- }
-
if (rand.nextInt(100) < 20) {
params.add("facet.missing", "true");
}
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/TestSolrCoreProperties.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/TestSolrCoreProperties.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/TestSolrCoreProperties.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/TestSolrCoreProperties.java Fri Aug 30 15:06:42 2013
@@ -17,14 +17,19 @@
package org.apache.solr;
import org.apache.lucene.util.IOUtils;
-import org.apache.lucene.util.LuceneTestCase;
-import org.apache.solr.util.AbstractSolrTestCase;
-import org.apache.solr.client.solrj.embedded.JettySolrRunner;
-import org.apache.solr.client.solrj.impl.HttpSolrServer;
-import org.apache.solr.client.solrj.SolrServer;
-import org.apache.solr.client.solrj.SolrServerException;
+//import org.apache.lucene.util.LuceneTestCase;
+//import org.apache.solr.util.AbstractSolrTestCase;
+//import org.apache.solr.client.solrj.embedded.JettySolrRunner;
+//import org.apache.solr.client.solrj.impl.HttpSolrServer;
+//import org.apache.solr.client.solrj.SolrServer;
+//import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.response.QueryResponse;
-import org.apache.solr.common.params.ModifiableSolrParams;
+import org.apache.solr.common.params.SolrParams;
+import org.apache.solr.common.util.NamedList;
+
+import org.apache.commons.io.FileUtils;
+
+import org.junit.BeforeClass;
import java.io.*;
import java.util.Properties;
@@ -36,96 +41,49 @@ import java.util.Properties;
*
* @since solr 1.4
*/
-public class TestSolrCoreProperties extends LuceneTestCase {
- private static final String CONF_DIR = "." + File.separator + "solr" + File.separator + "collection1" + File.separator + "conf" + File.separator;
- JettySolrRunner solrJetty;
- SolrServer client;
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- setUpMe();
- System.setProperty("solr.data.dir", getDataDir());
- System.setProperty("tests.shardhandler.randomSeed", Long.toString(random().nextLong()));
-
- solrJetty = new JettySolrRunner(getHomeDir(), "/solr", 0);
-
- solrJetty.start();
- String url = "http://127.0.0.1:" + solrJetty.getLocalPort() + "/solr";
- client = new HttpSolrServer(url);
-
- }
-
- @Override
- public void tearDown() throws Exception {
- solrJetty.stop();
- System.clearProperty("tests.shardhandler.randomSeed");
- AbstractSolrTestCase.recurseDelete(homeDir);
- super.tearDown();
- }
-
- public void testSimple() throws SolrServerException {
- ModifiableSolrParams params = new ModifiableSolrParams();
- params.add("q", "*:*");
- QueryResponse res = client.query(params);
- assertEquals(0, res.getResults().getNumFound());
- }
-
-
- File homeDir;
- File confDir;
- File dataDir;
-
- /**
- * if masterPort is null, this instance is a master -- otherwise this instance is a slave, and assumes the master is
- * on localhost at the specified port.
- */
-
-
- public String getHomeDir() {
- return homeDir.toString();
- }
-
- public String getSchemaFile() {
- return CONF_DIR + "schema-replication1.xml";
- }
-
- public String getConfDir() {
- return confDir.toString();
- }
-
- public String getDataDir() {
- return dataDir.toString();
- }
-
- public String getSolrConfigFile() {
- return CONF_DIR + "solrconfig-solcoreproperties.xml";
- }
-
- public void setUpMe() throws Exception {
-
- homeDir = new File(TEMP_DIR,
- getClass().getName() + "-" + System.currentTimeMillis());
-
-
- dataDir = new File(homeDir + "/collection1", "data");
- confDir = new File(homeDir + "/collection1", "conf");
+public class TestSolrCoreProperties extends SolrJettyTestBase {
+ @BeforeClass
+ public static void beforeTest() throws Exception {
+ File homeDir = new File(TEMP_DIR,
+ "solrtest-TestSolrCoreProperties-" + System.currentTimeMillis());
+ File collDir = new File(homeDir, "collection1");
+ File dataDir = new File(collDir, "data");
+ File confDir = new File(collDir, "conf");
homeDir.mkdirs();
+ collDir.mkdirs();
dataDir.mkdirs();
confDir.mkdirs();
- File f = new File(confDir, "solrconfig.xml");
- IOUtils.copy(SolrTestCaseJ4.getFile(getSolrConfigFile()), f);
+ FileUtils.copyFile(new File(SolrTestCaseJ4.TEST_HOME(), "solr.xml"), new File(homeDir, "solr.xml"));
+ String src_dir = TEST_HOME() + "/collection1/conf";
+ FileUtils.copyFile(new File(src_dir, "schema-tiny.xml"),
+ new File(confDir, "schema.xml"));
+ FileUtils.copyFile(new File(src_dir, "solrconfig-solcoreproperties.xml"),
+ new File(confDir, "solrconfig.xml"));
+ FileUtils.copyFile(new File(src_dir, "solrconfig.snippet.randomindexconfig.xml"),
+ new File(confDir, "solrconfig.snippet.randomindexconfig.xml"));
- f = new File(confDir, "schema.xml");
- IOUtils.copy(SolrTestCaseJ4.getFile(getSchemaFile()), f);
Properties p = new Properties();
p.setProperty("foo.foo1", "f1");
p.setProperty("foo.foo2", "f2");
- Writer fos = new OutputStreamWriter(new FileOutputStream(confDir + File.separator + "solrcore.properties"), IOUtils.CHARSET_UTF_8);
+ Writer fos = new OutputStreamWriter(new FileOutputStream(new File(confDir, "solrcore.properties")), IOUtils.CHARSET_UTF_8);
p.store(fos, null);
IOUtils.close(fos);
+
+ createJetty(homeDir.getAbsolutePath(), null, null);
+ }
+
+ public void testSimple() throws Exception {
+ SolrParams params = params("q", "*:*",
+ "echoParams", "all");
+ QueryResponse res = getSolrServer().query(params);
+ assertEquals(0, res.getResults().getNumFound());
+
+ NamedList echoedParams = (NamedList) res.getHeader().get("params");
+ assertEquals("f1", echoedParams.get("p1"));
+ assertEquals("f2", echoedParams.get("p2"));
}
+
}
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/cloud/ClusterStateUpdateTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/cloud/ClusterStateUpdateTest.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/cloud/ClusterStateUpdateTest.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/cloud/ClusterStateUpdateTest.java Fri Aug 30 15:06:42 2013
@@ -17,6 +17,7 @@ package org.apache.solr.cloud;
* limitations under the License.
*/
+import org.apache.commons.io.FileUtils;
import org.apache.lucene.util.LuceneTestCase.Slow;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.cloud.ClusterState;
@@ -36,6 +37,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
+import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
@@ -64,19 +66,31 @@ public class ClusterStateUpdateTest exte
private File dataDir3;
private File dataDir4;
-
+
+
+ private static final File solrHomeDirectory = new File(TEMP_DIR, "ZkControllerTest");
+
@BeforeClass
- public static void beforeClass() {
+ public static void beforeClass() throws IOException {
System.setProperty("solrcloud.skip.autorecovery", "true");
System.setProperty("genericCoreNodeNames", "false");
+ if (solrHomeDirectory.exists()) {
+ FileUtils.deleteDirectory(solrHomeDirectory);
+ }
+ copyMinFullSetup(solrHomeDirectory);
+
}
-
+
@AfterClass
- public static void afterClass() throws InterruptedException {
+ public static void afterClass() throws InterruptedException, IOException {
System.clearProperty("solrcloud.skip.autorecovery");
System.clearProperty("genericCoreNodeNames");
+ if (solrHomeDirectory.exists()) {
+ FileUtils.deleteDirectory(solrHomeDirectory);
+ }
}
+
@Override
public void setUp() throws Exception {
super.setUp();
@@ -111,19 +125,19 @@ public class ClusterStateUpdateTest exte
System.setProperty("solr.solr.home", TEST_HOME());
System.setProperty("hostPort", "1661");
System.setProperty("solr.data.dir", ClusterStateUpdateTest.this.dataDir1.getAbsolutePath());
- container1 = new CoreContainer();
+ container1 = new CoreContainer(solrHomeDirectory.getAbsolutePath());
container1.load();
System.clearProperty("hostPort");
System.setProperty("hostPort", "1662");
System.setProperty("solr.data.dir", ClusterStateUpdateTest.this.dataDir2.getAbsolutePath());
- container2 = new CoreContainer();
+ container2 = new CoreContainer(solrHomeDirectory.getAbsolutePath());
container2.load();
System.clearProperty("hostPort");
System.setProperty("hostPort", "1663");
System.setProperty("solr.data.dir", ClusterStateUpdateTest.this.dataDir3.getAbsolutePath());
- container3 = new CoreContainer();
+ container3 = new CoreContainer(solrHomeDirectory.getAbsolutePath());
container3.load();
System.clearProperty("hostPort");
System.clearProperty("solr.solr.home");
@@ -222,7 +236,7 @@ public class ClusterStateUpdateTest exte
System.setProperty("hostPort", "1662");
System.setProperty("solr.data.dir", ClusterStateUpdateTest.this.dataDir2.getAbsolutePath());
- container2 = new CoreContainer();
+ container2 = new CoreContainer(solrHomeDirectory.getAbsolutePath());
container2.load();
System.clearProperty("hostPort");
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/cloud/CollectionsAPIDistributedZkTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/cloud/CollectionsAPIDistributedZkTest.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/cloud/CollectionsAPIDistributedZkTest.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/cloud/CollectionsAPIDistributedZkTest.java Fri Aug 30 15:06:42 2013
@@ -17,14 +17,42 @@ package org.apache.solr.cloud;
* limitations under the License.
*/
+import static org.apache.solr.cloud.OverseerCollectionProcessor.REPLICATION_FACTOR;
+
+import java.io.File;
+import java.io.IOException;
+import java.lang.management.ManagementFactory;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+import java.util.concurrent.CompletionService;
+import java.util.concurrent.ExecutorCompletionService;
+import java.util.concurrent.Future;
+import java.util.concurrent.SynchronousQueue;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+
+import javax.management.MBeanServer;
+import javax.management.MBeanServerFactory;
+import javax.management.ObjectName;
+
import org.apache.lucene.util.Constants;
import org.apache.lucene.util.LuceneTestCase.Slow;
import org.apache.lucene.util._TestUtil;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
+import org.apache.solr.client.solrj.embedded.JettySolrRunner;
import org.apache.solr.client.solrj.impl.CloudSolrServer;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer.RemoteSolrException;
import org.apache.solr.client.solrj.request.CoreAdminRequest;
import org.apache.solr.client.solrj.request.CoreAdminRequest.Create;
import org.apache.solr.client.solrj.request.QueryRequest;
@@ -45,8 +73,10 @@ import org.apache.solr.common.params.Mod
import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.SimpleOrderedMap;
import org.apache.solr.common.util.StrUtils;
+import org.apache.solr.core.CoreContainer;
import org.apache.solr.core.SolrCore;
import org.apache.solr.core.SolrInfoMBean.Category;
+import org.apache.solr.core.SolrResourceLoader;
import org.apache.solr.servlet.SolrDispatchFilter;
import org.apache.solr.update.DirectUpdateHandler2;
import org.apache.solr.update.SolrCmdDistributor.Request;
@@ -54,31 +84,6 @@ import org.apache.solr.util.DefaultSolrT
import org.junit.Before;
import org.junit.BeforeClass;
-import javax.management.MBeanServer;
-import javax.management.MBeanServerFactory;
-import javax.management.ObjectName;
-import java.io.File;
-import java.io.IOException;
-import java.lang.management.ManagementFactory;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-import java.util.concurrent.CompletionService;
-import java.util.concurrent.ExecutorCompletionService;
-import java.util.concurrent.Future;
-import java.util.concurrent.SynchronousQueue;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
-
-import static org.apache.solr.cloud.OverseerCollectionProcessor.REPLICATION_FACTOR;
-
/**
* Tests the Cloud Collections API.
*/
@@ -147,12 +152,49 @@ public class CollectionsAPIDistributedZk
testCollectionsAPI();
testErrorHandling();
deletePartiallyCreatedCollection();
+ deleteCollectionRemovesStaleZkCollectionsNode();
+
+ // last
deleteCollectionWithDownNodes();
if (DEBUG) {
super.printLayout();
}
}
+ private void deleteCollectionRemovesStaleZkCollectionsNode() throws Exception {
+
+ // we can use this client because we just want base url
+ final String baseUrl = getBaseUrl((HttpSolrServer) clients.get(0));
+
+ String collectionName = "out_of_sync_collection";
+
+ List<Integer> numShardsNumReplicaList = new ArrayList<Integer>();
+ numShardsNumReplicaList.add(2);
+ numShardsNumReplicaList.add(1);
+
+
+ cloudClient.getZkStateReader().getZkClient().makePath(ZkStateReader.COLLECTIONS_ZKNODE + "/" + collectionName, true);
+
+ ModifiableSolrParams params = new ModifiableSolrParams();
+ params.set("action", CollectionAction.DELETE.toString());
+ params.set("name", collectionName);
+ QueryRequest request = new QueryRequest(params);
+ request.setPath("/admin/collections");
+
+ try {
+ NamedList<Object> resp = createNewSolrServer("", baseUrl)
+ .request(request);
+ fail("Expected to fail, because collection is not in clusterstate");
+ } catch (RemoteSolrException e) {
+
+ }
+
+ checkForMissingCollection(collectionName);
+
+ assertFalse(cloudClient.getZkStateReader().getZkClient().exists(ZkStateReader.COLLECTIONS_ZKNODE + "/" + collectionName, true));
+
+ }
+
private void deletePartiallyCreatedCollection() throws Exception {
final String baseUrl = getBaseUrl((HttpSolrServer) clients.get(0));
String collectionName = "halfdeletedcollection";
@@ -461,6 +503,8 @@ public class CollectionsAPIDistributedZk
waitForRecoveriesToFinish("awholynewcollection_" + j, zkStateReader, false);
}
+ checkInstanceDirs(jettys.get(0));
+
List<String> collectionNameList = new ArrayList<String>();
collectionNameList.addAll(collectionInfos.keySet());
String collectionName = collectionNameList.get(random().nextInt(collectionNameList.size()));
@@ -619,6 +663,24 @@ public class CollectionsAPIDistributedZk
checkNoTwoShardsUseTheSameIndexDir();
}
+ private void checkInstanceDirs(JettySolrRunner jetty) {
+ CoreContainer cores = ((SolrDispatchFilter) jetty.getDispatchFilter()
+ .getFilter()).getCores();
+ Collection<SolrCore> theCores = cores.getCores();
+ for (SolrCore core : theCores) {
+ // look for core props file
+ assertTrue("Could not find expected core.properties file",
+ new File((String) core.getStatistics().get("instanceDir"),
+ "core.properties").exists());
+
+ assertEquals(
+ SolrResourceLoader.normalizeDir(jetty.getSolrHome() + File.separator
+ + core.getName()),
+ SolrResourceLoader.normalizeDir((String) core.getStatistics().get(
+ "instanceDir")));
+ }
+ }
+
private boolean waitForReloads(String collectionName, Map<String,Long> urlToTimeBefore) throws SolrServerException, IOException {
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/cloud/CustomCollectionTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/cloud/CustomCollectionTest.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/cloud/CustomCollectionTest.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/cloud/CustomCollectionTest.java Fri Aug 30 15:06:42 2013
@@ -22,6 +22,7 @@ import org.apache.lucene.util.LuceneTest
import org.apache.lucene.util._TestUtil;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrRequest;
+import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.CloudSolrServer;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
@@ -62,6 +63,7 @@ import java.util.concurrent.ThreadPoolEx
import java.util.concurrent.TimeUnit;
import static org.apache.solr.cloud.OverseerCollectionProcessor.MAX_SHARDS_PER_NODE;
+import static org.apache.solr.cloud.OverseerCollectionProcessor.NUM_SLICES;
import static org.apache.solr.cloud.OverseerCollectionProcessor.REPLICATION_FACTOR;
import static org.apache.solr.cloud.OverseerCollectionProcessor.ROUTER;
import static org.apache.solr.cloud.OverseerCollectionProcessor.SHARDS_PROP;
@@ -132,6 +134,7 @@ public class CustomCollectionTest extend
@Override
public void doTest() throws Exception {
testCustomCollectionsAPI();
+ testRouteFieldForHashRouter();
if (DEBUG) {
super.printLayout();
}
@@ -242,8 +245,8 @@ public class CustomCollectionTest extend
collectionClient.commit();
assertEquals(3, collectionClient.query(new SolrQuery("*:*")).getResults().getNumFound());
- assertEquals(0, collectionClient.query(new SolrQuery("*:*").setParam("shard.keys","b")).getResults().getNumFound());
- assertEquals(3, collectionClient.query(new SolrQuery("*:*").setParam("shard.keys","a")).getResults().getNumFound());
+ assertEquals(0, collectionClient.query(new SolrQuery("*:*").setParam(_ROUTE_,"b")).getResults().getNumFound());
+ assertEquals(3, collectionClient.query(new SolrQuery("*:*").setParam(_ROUTE_,"a")).getResults().getNumFound());
collectionClient.deleteByQuery("*:*");
collectionClient.commit(true,true);
@@ -263,8 +266,8 @@ public class CustomCollectionTest extend
collectionClient.request(up);
assertEquals(3, collectionClient.query(new SolrQuery("*:*")).getResults().getNumFound());
- assertEquals(0, collectionClient.query(new SolrQuery("*:*").setParam("shard.keys","a")).getResults().getNumFound());
- assertEquals(3, collectionClient.query(new SolrQuery("*:*").setParam("shard.keys","c")).getResults().getNumFound());
+ assertEquals(0, collectionClient.query(new SolrQuery("*:*").setParam(_ROUTE_,"a")).getResults().getNumFound());
+ assertEquals(3, collectionClient.query(new SolrQuery("*:*").setParam(_ROUTE_,"c")).getResults().getNumFound());
//Testing CREATESHARD
ModifiableSolrParams params = new ModifiableSolrParams();
@@ -292,7 +295,7 @@ public class CustomCollectionTest extend
collectionClient.add(getDoc(id, 66, i1, -600, tlong, 600, t1,
"humpty dumpy sat on a wall", _ROUTE_,"x"));
collectionClient.commit();
- assertEquals(1, collectionClient.query(new SolrQuery("*:*").setParam("shard.keys","x")).getResults().getNumFound());
+ assertEquals(1, collectionClient.query(new SolrQuery("*:*").setParam(_ROUTE_,"x")).getResults().getNumFound());
int numShards = 4;
@@ -349,9 +352,67 @@ public class CustomCollectionTest extend
collectionClient.commit();
assertEquals(3, collectionClient.query(new SolrQuery("*:*")).getResults().getNumFound());
- assertEquals(0, collectionClient.query(new SolrQuery("*:*").setParam("shard.keys","b")).getResults().getNumFound());
+ assertEquals(0, collectionClient.query(new SolrQuery("*:*").setParam(_ROUTE_,"b")).getResults().getNumFound());
//TODO debug the following case
- assertEquals(3, collectionClient.query(new SolrQuery("*:*").setParam("shard.keys", "a")).getResults().getNumFound());
+ assertEquals(3, collectionClient.query(new SolrQuery("*:*").setParam(_ROUTE_, "a")).getResults().getNumFound());
+
+
+ }
+
+ private void testRouteFieldForHashRouter()throws Exception{
+ String collectionName = "routeFieldColl";
+ int numShards = 4;
+ int replicationFactor = 2;
+ int maxShardsPerNode = (((numShards * replicationFactor) / getCommonCloudSolrServer()
+ .getZkStateReader().getClusterState().getLiveNodes().size())) + 1;
+
+ HashMap<String, List<Integer>> collectionInfos = new HashMap<String, List<Integer>>();
+ CloudSolrServer client = null;
+ String shard_fld = "shard_s";
+ try {
+ client = createCloudClient(null);
+ Map<String, Object> props = OverseerCollectionProcessor.asMap(
+ REPLICATION_FACTOR, replicationFactor,
+ MAX_SHARDS_PER_NODE, maxShardsPerNode,
+ NUM_SLICES,numShards,
+ DocRouter.ROUTE_FIELD, shard_fld);
+
+ createCollection(collectionInfos, collectionName,props,client);
+ } finally {
+ if (client != null) client.shutdown();
+ }
+
+ List<Integer> list = collectionInfos.get(collectionName);
+ checkForCollection(collectionName, list, null);
+
+
+ String url = getUrlFromZk(collectionName);
+
+ HttpSolrServer collectionClient = new HttpSolrServer(url);
+
+ // poll for a second - it can take a moment before we are ready to serve
+ waitForNon403or404or503(collectionClient);
+
+
+ collectionClient = new HttpSolrServer(url);
+
+
+ // lets try and use the solrj client to index a couple documents
+
+ collectionClient.add(getDoc(id, 6, i1, -600, tlong, 600, t1,
+ "humpty dumpy sat on a wall", shard_fld,"a"));
+
+ collectionClient.add(getDoc(id, 7, i1, -600, tlong, 600, t1,
+ "humpty dumpy3 sat on a walls", shard_fld,"a"));
+
+ collectionClient.add(getDoc(id, 8, i1, -600, tlong, 600, t1,
+ "humpty dumpy2 sat on a walled", shard_fld,"a"));
+
+ collectionClient.commit();
+
+ assertEquals(3, collectionClient.query(new SolrQuery("*:*")).getResults().getNumFound());
+ //TODO debug the following case
+ assertEquals(3, collectionClient.query(new SolrQuery("*:*").setParam(_ROUTE_, "a")).getResults().getNumFound());
}
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java Fri Aug 30 15:06:42 2013
@@ -38,6 +38,7 @@ import org.apache.solr.update.VersionInf
import org.apache.solr.update.processor.DistributedUpdateProcessor;
import org.apache.zookeeper.CreateMode;
import org.junit.BeforeClass;
+import org.junit.Ignore;
/**
* Super basic testing, no shard restarting or anything.
@@ -240,7 +241,7 @@ public class FullSolrCloudDistribCmdsTes
private long testIndexQueryDeleteHierarchical(long docId) throws Exception {
//index
int topDocsNum = atLeast(10);
- int childsNum = atLeast(10);
+ int childsNum = 5+random().nextInt(5);
for (int i = 0; i < topDocsNum; ++i) {
UpdateRequest uReq = new UpdateRequest();
SolrInputDocument topDocument = new SolrInputDocument();
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/cloud/ShardSplitTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/cloud/ShardSplitTest.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/cloud/ShardSplitTest.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/cloud/ShardSplitTest.java Fri Aug 30 15:06:42 2013
@@ -17,15 +17,6 @@ package org.apache.solr.cloud;
* limitations under the License.
*/
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Random;
-import java.util.Set;
-
import org.apache.http.params.CoreConnectionPNames;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrRequest;
@@ -50,6 +41,15 @@ import org.apache.solr.update.DirectUpda
import org.junit.After;
import org.junit.Before;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Random;
+import java.util.Set;
+
public class ShardSplitTest extends BasicDistributedZkTest {
public static final String SHARD1_0 = SHARD1 + "_0";
@@ -289,7 +289,7 @@ public class ShardSplitTest extends Basi
int hash = 0;
if (router instanceof HashBasedRouter) {
HashBasedRouter hashBasedRouter = (HashBasedRouter) router;
- hash = hashBasedRouter.sliceHash(id, null, null);
+ hash = hashBasedRouter.sliceHash(id, null, null,null);
}
for (int i = 0; i < ranges.size(); i++) {
DocRouter.Range range = ranges.get(i);
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/cloud/ZkCLITest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/cloud/ZkCLITest.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/cloud/ZkCLITest.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/cloud/ZkCLITest.java Fri Aug 30 15:06:42 2013
@@ -18,10 +18,14 @@ package org.apache.solr.cloud;
*/
import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.InputStream;
import java.util.Collection;
import java.util.List;
import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
import org.apache.commons.io.filefilter.RegexFileFilter;
import org.apache.commons.io.filefilter.TrueFileFilter;
import org.apache.solr.SolrTestCaseJ4;
@@ -50,7 +54,8 @@ public class ZkCLITest extends SolrTestC
private String solrHome;
private SolrZkClient zkClient;
-
+
+ protected static final String SOLR_HOME = SolrTestCaseJ4.TEST_HOME();
@BeforeClass
public static void beforeClass() {
@@ -141,7 +146,7 @@ public class ZkCLITest extends SolrTestC
@Test
public void testPut() throws Exception {
- // test bootstrap_conf
+ // test put
String data = "my data";
String[] args = new String[] {"-zkhost", zkServer.getZkAddress(), "-cmd",
"put", "/data.txt", data};
@@ -151,7 +156,41 @@ public class ZkCLITest extends SolrTestC
assertArrayEquals(zkClient.getData("/data.txt", null, null, true), data.getBytes("UTF-8"));
}
-
+
+ @Test
+ public void testPutFile() throws Exception {
+ // test put file
+ String[] args = new String[] {"-zkhost", zkServer.getZkAddress(), "-cmd",
+ "putfile", "/solr.xml", SOLR_HOME + File.separator + "solr-stress-new.xml"};
+ ZkCLI.main(args);
+
+ String fromZk = new String(zkClient.getData("/solr.xml", null, null, true), "UTF-8");
+ File locFile = new File(SOLR_HOME + File.separator + "solr-stress-new.xml");
+ InputStream is = new FileInputStream(locFile);
+ String fromLoc;
+ try {
+ fromLoc = new String(IOUtils.toByteArray(is), "UTF-8");
+ } finally {
+ IOUtils.closeQuietly(is);
+ }
+ assertEquals("Should get back what we put in ZK", fromZk, fromLoc);
+ }
+
+ @Test
+ public void testPutFileNotExists() throws Exception {
+ // test put file
+ String[] args = new String[] {"-zkhost", zkServer.getZkAddress(), "-cmd",
+ "putfile", "/solr.xml", SOLR_HOME + File.separator + "not-there.xml"};
+ try {
+ ZkCLI.main(args);
+ fail("Should have had a file not found exception");
+ } catch (FileNotFoundException fne) {
+ String msg = fne.getMessage();
+ assertTrue("Didn't find expected error message containing 'not-there.xml' in " + msg,
+ msg.indexOf("not-there.xml") != -1);
+ }
+ }
+
@Test
public void testList() throws Exception {
zkClient.makePath("/test", true);
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java Fri Aug 30 15:06:42 2013
@@ -17,6 +17,7 @@ package org.apache.solr.cloud;
* the License.
*/
+import org.apache.commons.io.FileUtils;
import org.apache.lucene.util.LuceneTestCase.Slow;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.cloud.SolrZkClient;
@@ -26,6 +27,7 @@ import org.apache.solr.core.CoreContaine
import org.apache.solr.core.CoreDescriptor;
import org.apache.solr.util.ExternalPaths;
import org.apache.zookeeper.CreateMode;
+import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -42,12 +44,26 @@ public class ZkControllerTest extends So
static final int TIMEOUT = 10000;
private static final boolean DEBUG = false;
-
+
+
+ private static final File solrHomeDirectory = new File(TEMP_DIR, "ZkControllerTest");
+
@BeforeClass
public static void beforeClass() throws Exception {
+ if (solrHomeDirectory.exists()) {
+ FileUtils.deleteDirectory(solrHomeDirectory);
+ }
+ copyMinFullSetup(solrHomeDirectory);
initCore();
}
+ @AfterClass
+ public static void afterClass() throws Exception {
+ if (solrHomeDirectory.exists()) {
+ FileUtils.deleteDirectory(solrHomeDirectory);
+ }
+ }
+
public void testNodeNameUrlConversion() throws Exception {
// nodeName from parts
@@ -240,7 +256,7 @@ public class ZkControllerTest extends So
}
private CoreContainer getCoreContainer() {
- CoreContainer cc = new CoreContainer(TEMP_DIR.getAbsolutePath());
+ CoreContainer cc = new CoreContainer(solrHomeDirectory.getAbsolutePath());
cc.load();
return cc;
}
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/AlternateDirectoryTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/AlternateDirectoryTest.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/AlternateDirectoryTest.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/AlternateDirectoryTest.java Fri Aug 30 15:06:42 2013
@@ -20,6 +20,7 @@ import java.io.File;
import java.io.IOException;
import org.apache.lucene.index.DirectoryReader;
+import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.store.Directory;
import org.apache.solr.SolrTestCaseJ4;
import org.junit.BeforeClass;
@@ -71,6 +72,12 @@ public class AlternateDirectoryTest exte
TestIndexReaderFactory.newReaderCalled = true;
return DirectoryReader.open(indexDir);
}
+
+ @Override
+ public DirectoryReader newReader(IndexWriter writer, SolrCore core) throws IOException {
+ TestIndexReaderFactory.newReaderCalled = true;
+ return DirectoryReader.open(writer, true);
+ }
}
}
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/QueryResultKeyTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/QueryResultKeyTest.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/QueryResultKeyTest.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/QueryResultKeyTest.java Fri Aug 30 15:06:42 2013
@@ -56,4 +56,24 @@ public class QueryResultKeyTest extends
assertEquals(qrk1.hashCode(), qrk2.hashCode());
}
+ @Test
+ public void testQueryResultKeySortedFilters() {
+ Query fq1 = new TermQuery(new Term("test1", "field1"));
+ Query fq2 = new TermQuery(new Term("test2", "field2"));
+
+ Query query = new TermQuery(new Term("test3", "field3"));
+ List<Query> filters = new ArrayList<Query>();
+ filters.add(fq1);
+ filters.add(fq2);
+
+ QueryResultKey key = new QueryResultKey(query, filters, null, 0);
+
+ List<Query> newFilters = new ArrayList<Query>();
+ newFilters.add(fq2);
+ newFilters.add(fq1);
+ QueryResultKey newKey = new QueryResultKey(query, newFilters, null, 0);
+
+ assertEquals(key, newKey);
+ }
+
}
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestArbitraryIndexDir.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestArbitraryIndexDir.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestArbitraryIndexDir.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestArbitraryIndexDir.java Fri Aug 30 15:06:42 2013
@@ -53,12 +53,15 @@ public class TestArbitraryIndexDir exten
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("solr.tests.reopenReaders", "false");
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() {
+ System.clearProperty("solr.tests.reopenReaders");
if (savedFactory == null) {
System.clearProperty("solr.directoryFactory");
} else {
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestBadConfig.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestBadConfig.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestBadConfig.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestBadConfig.java Fri Aug 30 15:06:42 2013
@@ -27,6 +27,14 @@ public class TestBadConfig extends Abstr
assertConfigs("bad_solrconfig.xml","schema.xml","unset.sys.property");
}
+ public void testSegmentMergerWithoutReopen() throws Exception {
+ assertConfigs("bad-solrconfig-warmer-no-reopen.xml", "schema12.xml",
+ "mergedSegmentWarmer");
+ }
+ public void testMultipleDirectoryFactories() throws Exception {
+ assertConfigs("bad-solrconfig-multiple-dirfactory.xml", "schema12.xml",
+ "directoryFactory");
+ }
public void testMultipleIndexConfigs() throws Exception {
assertConfigs("bad-solrconfig-multiple-indexconfigs.xml", "schema12.xml",
"indexConfig");
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestCodecSupport.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestCodecSupport.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestCodecSupport.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestCodecSupport.java Fri Aug 30 15:06:42 2013
@@ -55,10 +55,10 @@ public class TestCodecSupport extends So
PerFieldDocValuesFormat format = (PerFieldDocValuesFormat) codec.docValuesFormat();
assertEquals("Disk", format.getDocValuesFormatForField(schemaField.getName()).getName());
schemaField = fields.get("string_memory_f");
- assertEquals("Lucene42",
+ assertEquals("Lucene45",
format.getDocValuesFormatForField(schemaField.getName()).getName());
schemaField = fields.get("string_f");
- assertEquals("Lucene42",
+ assertEquals("Lucene45",
format.getDocValuesFormatForField(schemaField.getName()).getName());
}
@@ -80,8 +80,8 @@ public class TestCodecSupport extends So
assertEquals("Disk", format.getDocValuesFormatForField("foo_disk").getName());
assertEquals("Disk", format.getDocValuesFormatForField("bar_disk").getName());
- assertEquals("Lucene42", format.getDocValuesFormatForField("foo_memory").getName());
- assertEquals("Lucene42", format.getDocValuesFormatForField("bar_memory").getName());
+ assertEquals("Lucene45", format.getDocValuesFormatForField("foo_memory").getName());
+ assertEquals("Lucene45", format.getDocValuesFormatForField("bar_memory").getName());
}
public void testUnknownField() {
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestConfig.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestConfig.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestConfig.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestConfig.java Fri Aug 30 15:06:42 2013
@@ -18,12 +18,16 @@
package org.apache.solr.core;
import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.index.TieredMergePolicy;
+import org.apache.lucene.index.ConcurrentMergeScheduler;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.handler.admin.ShowFileRequestHandler;
import org.apache.solr.update.DirectUpdateHandler2;
import org.apache.solr.update.SolrIndexConfig;
import org.apache.solr.util.RefCounted;
+import org.apache.solr.schema.IndexSchema;
+import org.apache.solr.schema.IndexSchemaFactory;
import org.junit.BeforeClass;
import org.junit.Test;
import org.w3c.dom.Node;
@@ -38,7 +42,7 @@ public class TestConfig extends SolrTest
@BeforeClass
public static void beforeClass() throws Exception {
- initCore("solrconfig-termindex.xml","schema-reversed.xml");
+ initCore("solrconfig-test-misc.xml","schema-reversed.xml");
}
@Test
@@ -66,6 +70,11 @@ public class TestConfig extends SolrTest
assertNull("should not have been able to find " + f, data);
}
}
+ @Test
+ public void testDisableRequetsHandler() throws Exception {
+ assertNull(h.getCore().getRequestHandler("disabled"));
+ assertNotNull(h.getCore().getRequestHandler("enabled"));
+ }
@Test
public void testJavaProperty() {
@@ -91,16 +100,6 @@ public class TestConfig extends SolrTest
assertEquals("prefix-proptwo-suffix", node.getTextContent());
}
- @Test
- public void testLucene23Upgrades() throws Exception {
- double bufferSize = solrConfig.indexConfig.ramBufferSizeMB;
- assertTrue(bufferSize + " does not equal: " + 100, bufferSize == 100);
- String mergePolicy = solrConfig.indexConfig.mergePolicyInfo.className;
- assertEquals(TieredMergePolicy.class.getName(), mergePolicy);
- String mergeSched = solrConfig.indexConfig.mergeSchedulerInfo.className;
- assertTrue(mergeSched + " is not equal to " + SolrIndexConfig.DEFAULT_MERGE_SCHEDULER_CLASSNAME, mergeSched.equals(SolrIndexConfig.DEFAULT_MERGE_SCHEDULER_CLASSNAME) == true);
- }
-
// sometime if the config referes to old things, it must be replaced with new stuff
@Test
public void testAutomaticDeprecationSupport() {
@@ -124,6 +123,14 @@ public class TestConfig extends SolrTest
assertEquals("default LockType", SolrIndexConfig.LOCK_TYPE_NATIVE, sic.lockType);
assertEquals("default useCompoundFile", false, sic.useCompoundFile);
+ IndexSchema indexSchema = IndexSchemaFactory.buildIndexSchema("schema.xml", solrConfig);
+ IndexWriterConfig iwc = sic.toIndexWriterConfig(indexSchema);
+
+ assertNotNull("null mp", iwc.getMergePolicy());
+ assertTrue("mp is not TMP", iwc.getMergePolicy() instanceof TieredMergePolicy);
+
+ assertNotNull("null ms", iwc.getMergeScheduler());
+ assertTrue("ms is not CMS", iwc.getMergeScheduler() instanceof ConcurrentMergeScheduler);
}
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java Fri Aug 30 15:06:42 2013
@@ -181,6 +181,11 @@ public class TestCoreContainer extends S
}
+ @Test
+ public void testLogWatcherEnabledByDefault() {
+ assertNotNull(h.getCoreContainer().getLogging());
+ }
+
private void SetUpHome(File solrHomeDirectory, String xmlFile) throws IOException {
if (solrHomeDirectory.exists()) {
FileUtils.deleteDirectory(solrHomeDirectory);
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestLazyCores.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestLazyCores.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestLazyCores.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestLazyCores.java Fri Aug 30 15:06:42 2013
@@ -69,7 +69,7 @@ public class TestLazyCores extends SolrT
FileUtils.write(solrXml, LOTS_SOLR_XML, IOUtils.CHARSET_UTF_8.toString());
ConfigSolrXmlOld config = (ConfigSolrXmlOld) ConfigSolr.fromFile(loader, solrXml);
- CoresLocator locator = new SolrXMLCoresLocator.NonPersistingLocator(solrXml, LOTS_SOLR_XML, config);
+ CoresLocator locator = new SolrXMLCoresLocator.NonPersistingLocator(LOTS_SOLR_XML, config);
final CoreContainer cores = new CoreContainer(loader, config, locator);
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestMergePolicyConfig.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestMergePolicyConfig.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestMergePolicyConfig.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestMergePolicyConfig.java Fri Aug 30 15:06:42 2013
@@ -27,6 +27,9 @@ import org.apache.lucene.index.SegmentIn
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.index.MergePolicy;
import org.apache.lucene.index.TieredMergePolicy;
+import org.apache.lucene.index.LogMergePolicy;
+import org.apache.lucene.index.LogByteSizeMergePolicy;
+import org.apache.lucene.index.LogDocMergePolicy;
import org.apache.lucene.index.ConcurrentMergeScheduler;
import org.apache.solr.core.SolrCore;
import org.apache.solr.util.RefCounted;
@@ -82,7 +85,7 @@ public class TestMergePolicyConfig exten
final boolean expectCFS
= Boolean.parseBoolean(System.getProperty("useCompoundFile"));
- initCore("solrconfig-mergepolicy.xml","schema-minimal.xml");
+ initCore("solrconfig-tieredmergepolicy.xml","schema-minimal.xml");
IndexWriterConfig iwc = solrConfig.indexConfig.toIndexWriterConfig(h.getCore().getLatestSchema());
assertEquals(expectCFS, iwc.getUseCompoundFile());
@@ -116,6 +119,37 @@ public class TestMergePolicyConfig exten
assertCompoundSegments(h.getCore(), false);
}
+ public void testLogMergePolicyConfig() throws Exception {
+
+ final Class<? extends LogMergePolicy> mpClass = random().nextBoolean()
+ ? LogByteSizeMergePolicy.class : LogDocMergePolicy.class;
+
+ System.setProperty("solr.test.log.merge.policy", mpClass.getName());
+
+ initCore("solrconfig-logmergepolicy.xml","schema-minimal.xml");
+ IndexWriterConfig iwc = solrConfig.indexConfig.toIndexWriterConfig(h.getCore().getLatestSchema());
+
+ // verify some props set to -1 get lucene internal defaults
+ assertEquals(-1, solrConfig.indexConfig.maxBufferedDocs);
+ assertEquals(IndexWriterConfig.DISABLE_AUTO_FLUSH,
+ iwc.getMaxBufferedDocs());
+ assertEquals(-1, solrConfig.indexConfig.maxIndexingThreads);
+ assertEquals(IndexWriterConfig.DEFAULT_MAX_THREAD_STATES,
+ iwc.getMaxThreadStates());
+ assertEquals(-1, solrConfig.indexConfig.ramBufferSizeMB, 0.0D);
+ assertEquals(IndexWriterConfig.DEFAULT_RAM_BUFFER_SIZE_MB,
+ iwc.getRAMBufferSizeMB(), 0.0D);
+
+
+ LogMergePolicy logMP = assertAndCast(mpClass, iwc.getMergePolicy());
+
+ // set by legacy <mergeFactor> setting
+ assertEquals(11, logMP.getMergeFactor());
+ // set by legacy <maxMergeDocs> setting
+ assertEquals(456, logMP.getMaxMergeDocs());
+
+ }
+
/**
* Given a Type and an object asserts that the object is non-null and an
* instance of the specified Type. The object is then cast to that type and
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestSolrXmlPersistence.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestSolrXmlPersistence.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestSolrXmlPersistence.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestSolrXmlPersistence.java Fri Aug 30 15:06:42 2013
@@ -382,7 +382,10 @@ public class TestSolrXmlPersistence exte
@Test
public void testPersist() throws Exception {
- final CoreContainer cores = init(ConfigSolrXmlOld.DEF_SOLR_XML, "collection1");
+ String defXml = FileUtils.readFileToString(
+ new File(SolrTestCaseJ4.TEST_HOME(), "solr.xml"),
+ Charsets.UTF_8.toString());
+ final CoreContainer cores = init(defXml, "collection1");
SolrXMLCoresLocator.NonPersistingLocator locator
= (SolrXMLCoresLocator.NonPersistingLocator) cores.getCoresLocator();
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestSolrXmlPersistor.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestSolrXmlPersistor.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestSolrXmlPersistor.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/core/TestSolrXmlPersistor.java Fri Aug 30 15:06:42 2013
@@ -18,15 +18,18 @@ package org.apache.solr.core;
*/
import com.google.common.collect.ImmutableList;
+import org.apache.commons.io.FileUtils;
+import org.apache.solr.SolrTestCaseJ4;
import org.junit.Test;
import java.io.File;
+import java.io.IOException;
import java.util.List;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
-public class TestSolrXmlPersistor {
+public class TestSolrXmlPersistor extends SolrTestCaseJ4 {
private static final List<CoreDescriptor> EMPTY_CD_LIST = ImmutableList.<CoreDescriptor>builder().build();
@@ -35,7 +38,7 @@ public class TestSolrXmlPersistor {
final String solrxml = "<solr><cores adminHandler=\"/admin\"/></solr>";
- SolrXMLCoresLocator persistor = new SolrXMLCoresLocator(new File("testfile.xml"), solrxml, null);
+ SolrXMLCoresLocator persistor = new SolrXMLCoresLocator(solrxml, null);
assertEquals(persistor.buildSolrXML(EMPTY_CD_LIST),
"<solr><cores adminHandler=\"/admin\"></cores></solr>");
@@ -45,7 +48,7 @@ public class TestSolrXmlPersistor {
public void emptyCoresTagIsPersisted() {
final String solrxml = "<solr><cores adminHandler=\"/admin\"></cores></solr>";
- SolrXMLCoresLocator persistor = new SolrXMLCoresLocator(new File("testfile.xml"), solrxml, null);
+ SolrXMLCoresLocator persistor = new SolrXMLCoresLocator(solrxml, null);
assertEquals(persistor.buildSolrXML(EMPTY_CD_LIST), "<solr><cores adminHandler=\"/admin\"></cores></solr>");
}
@@ -53,26 +56,38 @@ public class TestSolrXmlPersistor {
public void emptySolrXmlIsPersisted() {
final String solrxml = "<solr></solr>";
- SolrXMLCoresLocator persistor = new SolrXMLCoresLocator(new File("testfile.xml"), solrxml, null);
+ SolrXMLCoresLocator persistor = new SolrXMLCoresLocator(solrxml, null);
assertEquals(persistor.buildSolrXML(EMPTY_CD_LIST), "<solr><cores></cores></solr>");
}
@Test
- public void simpleCoreDescriptorIsPersisted() {
+ public void simpleCoreDescriptorIsPersisted() throws IOException {
final String solrxml = "<solr><cores></cores></solr>";
- SolrResourceLoader loader = new SolrResourceLoader("solr/example/solr");
- CoreContainer cc = new CoreContainer(loader);
+ final File solrHomeDirectory = new File(TEMP_DIR, "ZkControllerTest");
+ try {
+ if (solrHomeDirectory.exists()) {
+ FileUtils.deleteDirectory(solrHomeDirectory);
+ }
+ copyMinFullSetup(solrHomeDirectory);
- final CoreDescriptor cd = new CoreDescriptor(cc, "testcore", "instance/dir/");
- List<CoreDescriptor> cds = ImmutableList.of(cd);
+ CoreContainer cc = new CoreContainer(solrHomeDirectory.getAbsolutePath());
- SolrXMLCoresLocator persistor = new SolrXMLCoresLocator(new File("testfile.xml"), solrxml, null);
- assertEquals(persistor.buildSolrXML(cds),
+ final CoreDescriptor cd = new CoreDescriptor(cc, "testcore", "instance/dir/");
+ List<CoreDescriptor> cds = ImmutableList.of(cd);
+
+ SolrXMLCoresLocator persistor = new SolrXMLCoresLocator(solrxml, null);
+ assertEquals(persistor.buildSolrXML(cds),
"<solr><cores>" + SolrXMLCoresLocator.NEWLINE
- + " <core name=\"testcore\" instanceDir=\"instance/dir/\"/>" + SolrXMLCoresLocator.NEWLINE
- + "</cores></solr>");
+ + " <core name=\"testcore\" instanceDir=\"instance/dir/\"/>" + SolrXMLCoresLocator.NEWLINE
+ + "</cores></solr>");
+ } finally {
+ if (solrHomeDirectory.exists()) {
+ FileUtils.deleteDirectory(solrHomeDirectory);
+ }
+
+ }
}
@Test
@@ -89,7 +104,7 @@ public class TestSolrXmlPersistor {
"</cores>" +
"</solr>";
- SolrXMLCoresLocator locator = new SolrXMLCoresLocator(new File("testfile.xml"), solrxml, null);
+ SolrXMLCoresLocator locator = new SolrXMLCoresLocator(solrxml, null);
assertTrue(locator.getTemplate().contains("{{CORES_PLACEHOLDER}}"));
assertTrue(locator.getTemplate().contains("<shardHandlerFactory "));
assertTrue(locator.getTemplate().contains("${socketTimeout:500}"));
@@ -107,15 +122,14 @@ public class TestSolrXmlPersistor {
"</cores>" +
"</solr>";
- SolrXMLCoresLocator locator = new SolrXMLCoresLocator(new File("testfile.xml"), solrxml, null);
+ SolrXMLCoresLocator locator = new SolrXMLCoresLocator(solrxml, null);
assertTrue(locator.getTemplate().contains("{{CORES_PLACEHOLDER}}"));
assertTrue(locator.getTemplate().contains("<shardHandlerFactory "));
}
@Test
public void complexXmlIsParsed() {
- SolrXMLCoresLocator locator = new SolrXMLCoresLocator(new File("testfile.xml"),
- TestSolrXmlPersistence.SOLR_XML_LOTS_SYSVARS, null);
+ SolrXMLCoresLocator locator = new SolrXMLCoresLocator(TestSolrXmlPersistence.SOLR_XML_LOTS_SYSVARS, null);
assertTrue(locator.getTemplate().contains("{{CORES_PLACEHOLDER}}"));
}
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java Fri Aug 30 15:06:42 2013
@@ -69,6 +69,7 @@ import org.apache.solr.core.SolrCore;
import org.apache.solr.core.StandardDirectoryFactory;
import org.apache.solr.servlet.SolrDispatchFilter;
import org.apache.solr.util.AbstractSolrTestCase;
+import org.apache.solr.util.FileUtils;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -139,7 +140,7 @@ public class TestReplicationHandler exte
private static JettySolrRunner createJetty(SolrInstance instance) throws Exception {
System.setProperty("solr.data.dir", instance.getDataDir());
-
+ FileUtils.copyFile(new File(SolrTestCaseJ4.TEST_HOME(), "solr.xml"), new File(instance.getHomeDir(), "solr.xml"));
JettySolrRunner jetty = new JettySolrRunner(instance.getHomeDir(), "/solr", 0);
jetty.start();
@@ -346,6 +347,9 @@ public class TestReplicationHandler exte
public void testNoWriter() throws Exception {
useFactory(null); // force a persistent directory
+ // read-only setting (no opening from indexwriter)
+ System.setProperty("solr.tests.reopenReaders", "false");
+ try {
// stop and start so they see the new directory setting
slaveJetty.stop();
masterJetty.stop();
@@ -356,6 +360,9 @@ public class TestReplicationHandler exte
slaveClient.commit();
slaveJetty.stop();
slaveJetty.start(true);
+ } finally {
+ System.clearProperty("solr.tests.reopenReaders"); // dont mess with other tests
+ }
// Currently we open a writer on-demand. This is to test that we are correctly testing
// the code path when SolrDeletionPolicy.getLatestCommit() returns null.
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java Fri Aug 30 15:06:42 2013
@@ -22,6 +22,7 @@ import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.IOUtils;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.params.CommonParams;
+import org.apache.solr.common.params.GroupParams;
import org.apache.solr.common.params.MapSolrParams;
import org.apache.solr.common.params.QueryElevationParams;
import org.apache.solr.util.FileUtils;
@@ -106,6 +107,208 @@ public class QueryElevationComponentTest
}
@Test
+ public void testGroupedQuery() throws Exception {
+ try {
+ init("schema11.xml");
+ clearIndex();
+ assertU(commit());
+ assertU(adoc("id", "1", "text", "XXXX XXXX", "str_s", "a"));
+ assertU(adoc("id", "2", "text", "XXXX AAAA", "str_s", "b"));
+ assertU(adoc("id", "3", "text", "ZZZZ", "str_s", "c"));
+ assertU(adoc("id", "4", "text", "XXXX ZZZZ", "str_s", "d"));
+ assertU(adoc("id", "5", "text", "ZZZZ ZZZZ", "str_s", "e"));
+ assertU(adoc("id", "6", "text", "AAAA AAAA AAAA", "str_s", "f"));
+ assertU(adoc("id", "7", "text", "AAAA AAAA ZZZZ", "str_s", "g"));
+ assertU(adoc("id", "8", "text", "XXXX", "str_s", "h"));
+ assertU(adoc("id", "9", "text", "YYYY ZZZZ", "str_s", "i"));
+
+ assertU(adoc("id", "22", "text", "XXXX ZZZZ AAAA", "str_s", "b"));
+ assertU(adoc("id", "66", "text", "XXXX ZZZZ AAAA", "str_s", "f"));
+ assertU(adoc("id", "77", "text", "XXXX ZZZZ AAAA", "str_s", "g"));
+
+ assertU(commit());
+
+ final String groups = "//arr[@name='groups']";
+
+ assertQ("non-elevated group query",
+ req(CommonParams.Q, "AAAA",
+ CommonParams.QT, "/elevate",
+ GroupParams.GROUP_FIELD, "str_s",
+ GroupParams.GROUP, "true",
+ GroupParams.GROUP_TOTAL_COUNT, "true",
+ GroupParams.GROUP_LIMIT, "100",
+ QueryElevationParams.ENABLE, "false",
+ CommonParams.FL, "id, score, [elevated]")
+ , "//*[@name='ngroups'][.='3']"
+ , "//*[@name='matches'][.='6']"
+
+ , groups +"/lst[1]//doc[1]/float[@name='id'][.='6.0']"
+ , groups +"/lst[1]//doc[1]/bool[@name='[elevated]'][.='false']"
+ , groups +"/lst[1]//doc[2]/float[@name='id'][.='66.0']"
+ , groups +"/lst[1]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+ , groups +"/lst[2]//doc[1]/float[@name='id'][.='7.0']"
+ , groups +"/lst[2]//doc[1]/bool[@name='[elevated]'][.='false']"
+ , groups +"/lst[2]//doc[2]/float[@name='id'][.='77.0']"
+ , groups +"/lst[2]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+ , groups +"/lst[3]//doc[1]/float[@name='id'][.='2.0']"
+ , groups +"/lst[3]//doc[1]/bool[@name='[elevated]'][.='false']"
+ , groups +"/lst[3]//doc[2]/float[@name='id'][.='22.0']"
+ , groups +"/lst[3]//doc[2]/bool[@name='[elevated]'][.='false']"
+ );
+
+ assertQ("elevated group query",
+ req(CommonParams.Q, "AAAA",
+ CommonParams.QT, "/elevate",
+ GroupParams.GROUP_FIELD, "str_s",
+ GroupParams.GROUP, "true",
+ GroupParams.GROUP_TOTAL_COUNT, "true",
+ GroupParams.GROUP_LIMIT, "100",
+ CommonParams.FL, "id, score, [elevated]")
+ , "//*[@name='ngroups'][.='3']"
+ , "//*[@name='matches'][.='6']"
+
+ , groups +"/lst[1]//doc[1]/float[@name='id'][.='7.0']"
+ , groups +"/lst[1]//doc[1]/bool[@name='[elevated]'][.='true']"
+ , groups +"/lst[1]//doc[2]/float[@name='id'][.='77.0']"
+ , groups +"/lst[1]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+ , groups +"/lst[2]//doc[1]/float[@name='id'][.='6.0']"
+ , groups +"/lst[2]//doc[1]/bool[@name='[elevated]'][.='false']"
+ , groups +"/lst[2]//doc[2]/float[@name='id'][.='66.0']"
+ , groups +"/lst[2]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+ , groups +"/lst[3]//doc[1]/float[@name='id'][.='2.0']"
+ , groups +"/lst[3]//doc[1]/bool[@name='[elevated]'][.='false']"
+ , groups +"/lst[3]//doc[2]/float[@name='id'][.='22.0']"
+ , groups +"/lst[3]//doc[2]/bool[@name='[elevated]'][.='false']"
+ );
+
+ assertQ("non-elevated because sorted group query",
+ req(CommonParams.Q, "AAAA",
+ CommonParams.QT, "/elevate",
+ CommonParams.SORT, "id asc",
+ GroupParams.GROUP_FIELD, "str_s",
+ GroupParams.GROUP, "true",
+ GroupParams.GROUP_TOTAL_COUNT, "true",
+ GroupParams.GROUP_LIMIT, "100",
+ CommonParams.FL, "id, score, [elevated]")
+ , "//*[@name='ngroups'][.='3']"
+ , "//*[@name='matches'][.='6']"
+
+ , groups +"/lst[1]//doc[1]/float[@name='id'][.='2.0']"
+ , groups +"/lst[1]//doc[1]/bool[@name='[elevated]'][.='false']"
+ , groups +"/lst[1]//doc[2]/float[@name='id'][.='22.0']"
+ , groups +"/lst[1]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+ , groups +"/lst[2]//doc[1]/float[@name='id'][.='6.0']"
+ , groups +"/lst[2]//doc[1]/bool[@name='[elevated]'][.='false']"
+ , groups +"/lst[2]//doc[2]/float[@name='id'][.='66.0']"
+ , groups +"/lst[2]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+ , groups +"/lst[3]//doc[1]/float[@name='id'][.='7.0']"
+ , groups +"/lst[3]//doc[1]/bool[@name='[elevated]'][.='true']"
+ , groups +"/lst[3]//doc[2]/float[@name='id'][.='77.0']"
+ , groups +"/lst[3]//doc[2]/bool[@name='[elevated]'][.='false']"
+ );
+
+ assertQ("force-elevated sorted group query",
+ req(CommonParams.Q, "AAAA",
+ CommonParams.QT, "/elevate",
+ CommonParams.SORT, "id asc",
+ QueryElevationParams.FORCE_ELEVATION, "true",
+ GroupParams.GROUP_FIELD, "str_s",
+ GroupParams.GROUP, "true",
+ GroupParams.GROUP_TOTAL_COUNT, "true",
+ GroupParams.GROUP_LIMIT, "100",
+ CommonParams.FL, "id, score, [elevated]")
+ , "//*[@name='ngroups'][.='3']"
+ , "//*[@name='matches'][.='6']"
+
+ , groups +"/lst[1]//doc[1]/float[@name='id'][.='7.0']"
+ , groups +"/lst[1]//doc[1]/bool[@name='[elevated]'][.='true']"
+ , groups +"/lst[1]//doc[2]/float[@name='id'][.='77.0']"
+ , groups +"/lst[1]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+ , groups +"/lst[2]//doc[1]/float[@name='id'][.='2.0']"
+ , groups +"/lst[2]//doc[1]/bool[@name='[elevated]'][.='false']"
+ , groups +"/lst[2]//doc[2]/float[@name='id'][.='22.0']"
+ , groups +"/lst[2]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+ , groups +"/lst[3]//doc[1]/float[@name='id'][.='6.0']"
+ , groups +"/lst[3]//doc[1]/bool[@name='[elevated]'][.='false']"
+ , groups +"/lst[3]//doc[2]/float[@name='id'][.='66.0']"
+ , groups +"/lst[3]//doc[2]/bool[@name='[elevated]'][.='false']"
+ );
+
+
+ assertQ("non-elevated because of sort within group query",
+ req(CommonParams.Q, "AAAA",
+ CommonParams.QT, "/elevate",
+ CommonParams.SORT, "id asc",
+ GroupParams.GROUP_SORT, "id desc",
+ GroupParams.GROUP_FIELD, "str_s",
+ GroupParams.GROUP, "true",
+ GroupParams.GROUP_TOTAL_COUNT, "true",
+ GroupParams.GROUP_LIMIT, "100",
+ CommonParams.FL, "id, score, [elevated]")
+ , "//*[@name='ngroups'][.='3']"
+ , "//*[@name='matches'][.='6']"
+
+ , groups +"/lst[1]//doc[1]/float[@name='id'][.='22.0']"
+ , groups +"/lst[1]//doc[1]/bool[@name='[elevated]'][.='false']"
+ , groups +"/lst[1]//doc[2]/float[@name='id'][.='2.0']"
+ , groups +"/lst[1]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+ , groups +"/lst[2]//doc[1]/float[@name='id'][.='66.0']"
+ , groups +"/lst[2]//doc[1]/bool[@name='[elevated]'][.='false']"
+ , groups +"/lst[2]//doc[2]/float[@name='id'][.='6.0']"
+ , groups +"/lst[2]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+ , groups +"/lst[3]//doc[1]/float[@name='id'][.='77.0']"
+ , groups +"/lst[3]//doc[1]/bool[@name='[elevated]'][.='false']"
+ , groups +"/lst[3]//doc[2]/float[@name='id'][.='7.0']"
+ , groups +"/lst[3]//doc[2]/bool[@name='[elevated]'][.='true']"
+ );
+
+
+ assertQ("force elevated sort within sorted group query",
+ req(CommonParams.Q, "AAAA",
+ CommonParams.QT, "/elevate",
+ CommonParams.SORT, "id asc",
+ GroupParams.GROUP_SORT, "id desc",
+ QueryElevationParams.FORCE_ELEVATION, "true",
+ GroupParams.GROUP_FIELD, "str_s",
+ GroupParams.GROUP, "true",
+ GroupParams.GROUP_TOTAL_COUNT, "true",
+ GroupParams.GROUP_LIMIT, "100",
+ CommonParams.FL, "id, score, [elevated]")
+ , "//*[@name='ngroups'][.='3']"
+ , "//*[@name='matches'][.='6']"
+
+ , groups +"/lst[1]//doc[1]/float[@name='id'][.='7.0']"
+ , groups +"/lst[1]//doc[1]/bool[@name='[elevated]'][.='true']"
+ , groups +"/lst[1]//doc[2]/float[@name='id'][.='77.0']"
+ , groups +"/lst[1]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+ , groups +"/lst[2]//doc[1]/float[@name='id'][.='22.0']"
+ , groups +"/lst[2]//doc[1]/bool[@name='[elevated]'][.='false']"
+ , groups +"/lst[2]//doc[2]/float[@name='id'][.='2.0']"
+ , groups +"/lst[2]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+ , groups +"/lst[3]//doc[1]/float[@name='id'][.='66.0']"
+ , groups +"/lst[3]//doc[1]/bool[@name='[elevated]'][.='false']"
+ , groups +"/lst[3]//doc[2]/float[@name='id'][.='6.0']"
+ , groups +"/lst[3]//doc[2]/bool[@name='[elevated]'][.='false']"
+ );
+
+ } finally {
+ delete();
+ }
+ }
+
+ @Test
public void testTrieFieldType() throws Exception {
try {
init("schema.xml");
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/request/TestRemoteStreaming.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/request/TestRemoteStreaming.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/request/TestRemoteStreaming.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/request/TestRemoteStreaming.java Fri Aug 30 15:06:42 2013
@@ -27,10 +27,12 @@ import org.apache.solr.client.solrj.requ
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrInputDocument;
+import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
+import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
@@ -44,10 +46,18 @@ import java.net.URLEncoder;
*/
public class TestRemoteStreaming extends SolrJettyTestBase {
+ private static final File solrHomeDirectory = new File(TEMP_DIR, "TestRemoteStreaming");
+
@BeforeClass
public static void beforeTest() throws Exception {
//this one has handleSelect=true which a test here needs
- createJetty("solr/", null, null);
+ setupJettyTestHome(solrHomeDirectory, "collection1");
+ createJetty(solrHomeDirectory.getAbsolutePath(), null, null);
+ }
+
+ @AfterClass
+ public static void afterTest() throws Exception {
+ cleanUpJettyHome(solrHomeDirectory);
}
@Before
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldResource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldResource.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldResource.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldResource.java Fri Aug 30 15:06:42 2013
@@ -42,7 +42,10 @@ public class TestManagedSchemaFieldResou
solrRestApi.setInitParameter("org.restlet.application", "org.apache.solr.rest.SolrRestApi");
extraServlets.put(solrRestApi, "/schema/*"); // '/schema/*' matches '/schema', '/schema/', and '/schema/whatever...'
- createJettyAndHarness(tmpSolrHome, "solrconfig-mutable-managed-schema.xml", "schema-rest.xml", "/solr", true, extraServlets);
+ System.setProperty("managed.schema.mutable", "true");
+ System.setProperty("enable.update.log", "false");
+
+ createJettyAndHarness(tmpSolrHome, "solrconfig-managed-schema.xml", "schema-rest.xml", "/solr", true, extraServlets);
}
@After
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/schema/BadIndexSchemaTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/schema/BadIndexSchemaTest.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/schema/BadIndexSchemaTest.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/schema/BadIndexSchemaTest.java Fri Aug 30 15:06:42 2013
@@ -93,10 +93,6 @@ public class BadIndexSchemaTest extends
doTest("bad-schema-codec-global-vs-ft-mismatch.xml", "codec does not support");
}
- public void testDocValuesNotRequiredNoDefault() throws Exception {
- doTest("bad-schema-docValues-not-required-no-default.xml", "has no default value and is not required");
- }
-
public void testDocValuesUnsupported() throws Exception {
doTest("bad-schema-unsupported-docValues.xml", "does not support doc values");
}
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java Fri Aug 30 15:06:42 2013
@@ -17,20 +17,17 @@
package org.apache.solr.schema;
import java.io.File;
-import java.io.FileOutputStream;
import java.nio.ByteBuffer;
import java.util.List;
-import org.apache.commons.io.IOUtils;
import org.apache.commons.io.FileUtils;
+import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.beans.Field;
-import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.*;
-import org.apache.solr.core.SolrResourceLoader;
import org.apache.solr.SolrJettyTestBase;
import org.junit.BeforeClass;
@@ -49,6 +46,8 @@ public class TestBinaryField extends Sol
dataDir.mkdirs();
confDir.mkdirs();
+ FileUtils.copyFile(new File(SolrTestCaseJ4.TEST_HOME(), "solr.xml"), new File(homeDir, "solr.xml"));
+
String src_dir = TEST_HOME() + "/collection1/conf";
FileUtils.copyFile(new File(src_dir, "schema-binaryfield.xml"),
new File(confDir, "schema.xml"));
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/schema/TestCloudManagedSchema.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/schema/TestCloudManagedSchema.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/schema/TestCloudManagedSchema.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/schema/TestCloudManagedSchema.java Fri Aug 30 15:06:42 2013
@@ -27,6 +27,7 @@ import org.apache.solr.common.SolrExcept
import org.apache.solr.common.params.CoreAdminParams;
import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.solr.common.util.NamedList;
+import org.junit.BeforeClass;
import java.io.IOException;
import java.io.InputStream;
@@ -39,9 +40,15 @@ public class TestCloudManagedSchema exte
super();
}
+ @BeforeClass
+ public static void initSysProperties() {
+ System.setProperty("managed.schema.mutable", "false");
+ System.setProperty("enable.update.log", "true");
+ }
+
@Override
protected String getCloudSolrConfig() {
- return "solrconfig-tlog-managed-schema.xml";
+ return "solrconfig-managed-schema.xml";
}
@Override
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/schema/TestCloudManagedSchemaAddField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/schema/TestCloudManagedSchemaAddField.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/schema/TestCloudManagedSchemaAddField.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/schema/TestCloudManagedSchemaAddField.java Fri Aug 30 15:06:42 2013
@@ -26,6 +26,8 @@ import org.restlet.ext.servlet.ServerSer
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.junit.BeforeClass;
+
import java.util.ArrayList;
import java.util.List;
import java.util.SortedMap;
@@ -42,9 +44,15 @@ public class TestCloudManagedSchemaAddFi
shardCount = 8;
}
+ @BeforeClass
+ public static void initSysProperties() {
+ System.setProperty("managed.schema.mutable", "true");
+ System.setProperty("enable.update.log", "true");
+ }
+
@Override
protected String getCloudSolrConfig() {
- return "solrconfig-tlog-mutable-managed-schema.xml";
+ return "solrconfig-managed-schema.xml";
}
@Override
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/schema/TestManagedSchema.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/schema/TestManagedSchema.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/schema/TestManagedSchema.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/schema/TestManagedSchema.java Fri Aug 30 15:06:42 2013
@@ -52,7 +52,6 @@ public class TestManagedSchema extends A
tmpSolrHome = new File(tmpSolrHomePath).getAbsoluteFile();
tmpConfDir = new File(tmpSolrHome, confDir);
File testHomeConfDir = new File(TEST_HOME(), confDir);
- FileUtils.copyFileToDirectory(new File(testHomeConfDir, "solrconfig-mutable-managed-schema.xml"), tmpConfDir);
FileUtils.copyFileToDirectory(new File(testHomeConfDir, "solrconfig-managed-schema.xml"), tmpConfDir);
FileUtils.copyFileToDirectory(new File(testHomeConfDir, "solrconfig-basic.xml"), tmpConfDir);
FileUtils.copyFileToDirectory(new File(testHomeConfDir, "solrconfig.snippet.randomindexconfig.xml"), tmpConfDir);
@@ -64,6 +63,8 @@ public class TestManagedSchema extends A
// initCore will trigger an upgrade to managed schema, since the solrconfig has
// <schemaFactory class="ManagedIndexSchemaFactory" ... />
+ System.setProperty("managed.schema.mutable", "false");
+ System.setProperty("enable.update.log", "false");
initCore("solrconfig-managed-schema.xml", "schema-minimal.xml", tmpSolrHome.getPath());
}
@@ -71,6 +72,8 @@ public class TestManagedSchema extends A
private void deleteCoreAndTempSolrHomeDirectory() throws Exception {
deleteCore();
FileUtils.deleteDirectory(tmpSolrHome);
+ System.clearProperty("managed.schema.mutable");
+ System.clearProperty("enable.update.log");
}
public void testUpgrade() throws Exception {
@@ -165,7 +168,9 @@ public class TestManagedSchema extends A
deleteCore();
File managedSchemaFile = new File(tmpConfDir, "managed-schema");
assertTrue(managedSchemaFile.delete()); // Delete managed-schema so it won't block parsing a new schema
- initCore("solrconfig-mutable-managed-schema.xml", "schema-one-field-no-dynamic-field.xml", tmpSolrHome.getPath());
+
+ System.setProperty("managed.schema.mutable", "true");
+ initCore("solrconfig-managed-schema.xml", "schema-one-field-no-dynamic-field.xml", tmpSolrHome.getPath());
assertTrue(managedSchemaFile.exists());
String managedSchemaContents = FileUtils.readFileToString(managedSchemaFile, "UTF-8");
@@ -192,7 +197,8 @@ public class TestManagedSchema extends A
deleteCore();
File managedSchemaFile = new File(tmpConfDir, "managed-schema");
assertTrue(managedSchemaFile.delete()); // Delete managed-schema so it won't block parsing a new schema
- initCore("solrconfig-mutable-managed-schema.xml", "schema-one-field-no-dynamic-field.xml", tmpSolrHome.getPath());
+ System.setProperty("managed.schema.mutable", "true");
+ initCore("solrconfig-managed-schema.xml", "schema-one-field-no-dynamic-field.xml", tmpSolrHome.getPath());
assertTrue(managedSchemaFile.exists());
String managedSchemaContents = FileUtils.readFileToString(managedSchemaFile, "UTF-8");
@@ -238,7 +244,8 @@ public class TestManagedSchema extends A
deleteCore();
File managedSchemaFile = new File(tmpConfDir, "managed-schema");
assertTrue(managedSchemaFile.delete()); // Delete managed-schema so it won't block parsing a new schema
- initCore("solrconfig-mutable-managed-schema.xml", "schema-one-field-no-dynamic-field.xml", tmpSolrHome.getPath());
+ System.setProperty("managed.schema.mutable", "true");
+ initCore("solrconfig-managed-schema.xml", "schema-one-field-no-dynamic-field.xml", tmpSolrHome.getPath());
assertNotNull("Field 'str' is not present in the schema", h.getCore().getLatestSchema().getFieldOrNull("str"));
@@ -270,7 +277,8 @@ public class TestManagedSchema extends A
deleteCore();
File managedSchemaFile = new File(tmpConfDir, "managed-schema");
assertTrue(managedSchemaFile.delete()); // Delete managed-schema so it won't block parsing a new schema
- initCore("solrconfig-mutable-managed-schema.xml", "schema-one-field-no-dynamic-field.xml", tmpSolrHome.getPath());
+ System.setProperty("managed.schema.mutable", "true");
+ initCore("solrconfig-managed-schema.xml", "schema-one-field-no-dynamic-field.xml", tmpSolrHome.getPath());
Map<String,Object> options = new HashMap<String,Object>();
options.put("stored", "false");
@@ -304,7 +312,8 @@ public class TestManagedSchema extends A
deleteCore();
File managedSchemaFile = new File(tmpConfDir, "managed-schema");
assertTrue(managedSchemaFile.delete()); // Delete managed-schema so it won't block parsing a new schema
- initCore("solrconfig-mutable-managed-schema.xml", "schema-one-field-no-dynamic-field.xml", tmpSolrHome.getPath());
+ System.setProperty("managed.schema.mutable", "true");
+ initCore("solrconfig-managed-schema.xml", "schema-one-field-no-dynamic-field.xml", tmpSolrHome.getPath());
assertNull("Field '*_s' is present in the schema", h.getCore().getLatestSchema().getFieldOrNull("*_s"));
@@ -336,7 +345,8 @@ public class TestManagedSchema extends A
deleteCore();
File managedSchemaFile = new File(tmpConfDir, "managed-schema");
assertTrue(managedSchemaFile.delete()); // Delete managed-schema so it won't block parsing a new schema
- initCore("solrconfig-mutable-managed-schema.xml", "schema_codec.xml", tmpSolrHome.getPath());
+ System.setProperty("managed.schema.mutable", "true");
+ initCore("solrconfig-managed-schema.xml", "schema_codec.xml", tmpSolrHome.getPath());
String uniqueKey = "string_f";
assertNotNull("Unique key field '" + uniqueKey + "' is not present in the schema",
@@ -363,7 +373,8 @@ public class TestManagedSchema extends A
deleteCore();
File managedSchemaFile = new File(tmpConfDir, "managed-schema");
assertTrue(managedSchemaFile.delete()); // Delete managed-schema so it won't block parsing a new schema
- initCore("solrconfig-mutable-managed-schema.xml", "schema-bm25.xml", tmpSolrHome.getPath());
+ System.setProperty("managed.schema.mutable", "true");
+ initCore("solrconfig-managed-schema.xml", "schema-bm25.xml", tmpSolrHome.getPath());
String uniqueKey = "id";
assertNotNull("Unique key field '" + uniqueKey + "' is not present in the schema",
@@ -391,7 +402,8 @@ public class TestManagedSchema extends A
deleteCore();
File managedSchemaFile = new File(tmpConfDir, "managed-schema");
assertTrue(managedSchemaFile.delete()); // Delete managed-schema so it won't block parsing a new schema
- initCore("solrconfig-mutable-managed-schema.xml", "schema-one-field-no-dynamic-field-unique-key.xml", tmpSolrHome.getPath());
+ System.setProperty("managed.schema.mutable", "true");
+ initCore("solrconfig-managed-schema.xml", "schema-one-field-no-dynamic-field-unique-key.xml", tmpSolrHome.getPath());
assertTrue(managedSchemaFile.exists());
String managedSchemaContents = FileUtils.readFileToString(managedSchemaFile, "UTF-8");
@@ -426,7 +438,8 @@ public class TestManagedSchema extends A
deleteCore();
File managedSchemaFile = new File(tmpConfDir, "managed-schema");
assertTrue(managedSchemaFile.delete()); // Delete managed-schema so it won't block parsing a new schema
- initCore("solrconfig-mutable-managed-schema.xml", "schema-one-field-no-dynamic-field.xml", tmpSolrHome.getPath());
+ System.setProperty("managed.schema.mutable", "true");
+ initCore("solrconfig-managed-schema.xml", "schema-one-field-no-dynamic-field.xml", tmpSolrHome.getPath());
String fieldName = "new_text_field";
assertNull("Field '" + fieldName + "' is present in the schema",
Modified: lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/search/TestAddFieldRealTimeGet.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/search/TestAddFieldRealTimeGet.java?rev=1518989&r1=1518988&r2=1518989&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/search/TestAddFieldRealTimeGet.java (original)
+++ lucene/dev/branches/lucene3069/solr/core/src/test/org/apache/solr/search/TestAddFieldRealTimeGet.java Fri Aug 30 15:06:42 2013
@@ -42,13 +42,16 @@ public class TestAddFieldRealTimeGet ext
tmpSolrHome = new File(tmpSolrHomePath).getAbsoluteFile();
tmpConfDir = new File(tmpSolrHome, confDir);
File testHomeConfDir = new File(TEST_HOME(), confDir);
- final String configFileName = "solrconfig-tlog-mutable-managed-schema.xml";
+ final String configFileName = "solrconfig-managed-schema.xml";
final String schemaFileName = "schema-id-and-version-fields-only.xml";
FileUtils.copyFileToDirectory(new File(testHomeConfDir, configFileName), tmpConfDir);
FileUtils.copyFileToDirectory(new File(testHomeConfDir, schemaFileName), tmpConfDir);
+ FileUtils.copyFileToDirectory(new File(testHomeConfDir, "solrconfig.snippet.randomindexconfig.xml"), tmpConfDir);
// initCore will trigger an upgrade to managed schema, since the solrconfig has
// <schemaFactory class="ManagedIndexSchemaFactory" ... />
+ System.setProperty("managed.schema.mutable", "true");
+ System.setProperty("enable.update.log", "true");
initCore(configFileName, schemaFileName, tmpSolrHome.getPath());
}