You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by si...@apache.org on 2012/10/28 11:45:48 UTC
svn commit: r1402967 [3/4] - in /lucene/dev/branches/LUCENE-2878: ./
dev-tools/ dev-tools/eclipse/ dev-tools/idea/.idea/libraries/
dev-tools/maven/ dev-tools/scripts/ lucene/ lucene/classification/
lucene/classification/src/java/org/apache/lucene/class...
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/schema/ExternalFileField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/schema/ExternalFileField.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/schema/ExternalFileField.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/schema/ExternalFileField.java Sun Oct 28 10:45:43 2012
@@ -16,18 +16,16 @@
*/
package org.apache.solr.schema;
+import org.apache.lucene.index.StorableField;
import org.apache.lucene.queries.function.ValueSource;
import org.apache.lucene.search.SortField;
-import org.apache.lucene.index.GeneralField;
-import org.apache.lucene.index.IndexableField;
-import org.apache.lucene.index.StorableField;
-import org.apache.solr.search.function.FileFloatSource;
-import org.apache.solr.search.QParser;
-import org.apache.solr.response.TextResponseWriter;
import org.apache.solr.common.SolrException;
+import org.apache.solr.response.TextResponseWriter;
+import org.apache.solr.search.QParser;
+import org.apache.solr.search.function.FileFloatSource;
-import java.util.Map;
import java.io.IOException;
+import java.util.Map;
/** Get values from an external file instead of the index.
*
@@ -55,7 +53,7 @@ import java.io.IOException;
* <p/>The external file may be sorted or unsorted by the key field, but it will be substantially slower (untested) if it isn't sorted.
* <p/>Fields of this type may currently only be used as a ValueSource in a FunctionQuery.
*
- *
+ * @see ExternalFileFieldReloader
*/
public class ExternalFileField extends FieldType {
private FieldType ftype;
@@ -94,10 +92,26 @@ public class ExternalFileField extends F
@Override
public ValueSource getValueSource(SchemaField field, QParser parser) {
- // default key field to unique key
- SchemaField keyField = keyFieldName==null ? schema.getUniqueKeyField() : schema.getField(keyFieldName);
- return new FileFloatSource(field, keyField, defVal, parser);
+ return getFileFloatSource(field, parser.getReq().getCore().getDataDir());
}
+ /**
+ * Get a FileFloatSource for the given field, looking in datadir for the relevant file
+ * @param field the field to get a source for
+ * @param datadir the data directory in which to look for the external file
+ * @return a FileFloatSource
+ */
+ public FileFloatSource getFileFloatSource(SchemaField field, String datadir) {
+ // Because the float source uses a static cache, all source objects will
+ // refer to the same data.
+ return new FileFloatSource(field, getKeyField(), defVal, datadir);
+ }
+
+ // If no key field is defined, we use the unique key field
+ private SchemaField getKeyField() {
+ return keyFieldName == null ?
+ schema.getUniqueKeyField() :
+ schema.getField(keyFieldName);
+ }
}
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java Sun Oct 28 10:45:43 2012
@@ -42,6 +42,7 @@ import org.apache.lucene.store.NRTCachin
import org.apache.lucene.util.Bits;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.OpenBitSet;
+import org.apache.solr.common.SolrException;
import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.SimpleOrderedMap;
@@ -78,7 +79,7 @@ public class SolrIndexSearcher extends I
private static Logger log = LoggerFactory.getLogger(SolrIndexSearcher.class);
private final SolrCore core;
private final IndexSchema schema;
- private String indexDir;
+
private boolean debug = log.isDebugEnabled();
private final String name;
@@ -149,8 +150,6 @@ public class SolrIndexSearcher extends I
directoryFactory.incRef(dir);
}
- this.indexDir = getIndexDir(dir);
-
this.closeReader = closeReader;
setSimilarity(schema.getSimilarity());
@@ -274,7 +273,11 @@ public class SolrIndexSearcher extends I
// super.close();
// can't use super.close() since it just calls reader.close() and that may only be called once
// per reader (even if incRef() was previously called).
- if (closeReader) reader.decRef();
+ try {
+ if (closeReader) reader.decRef();
+ } catch (Throwable t) {
+ SolrException.log(log, "Problem dec ref'ing reader", t);
+ }
for (SolrCache cache : cacheList) {
cache.close();
@@ -410,12 +413,6 @@ public class SolrIndexSearcher extends I
// }
// }
- /**
- * @return the indexDir on which this searcher is opened
- */
- public String getIndexDir() {
- return indexDir;
- }
/* ********************** Document retrieval *************************/
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/search/function/FileFloatSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/search/function/FileFloatSource.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/search/function/FileFloatSource.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/search/function/FileFloatSource.java Sun Oct 28 10:45:43 2012
@@ -16,24 +16,7 @@
*/
package org.apache.solr.search.function;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.WeakHashMap;
-
-import org.apache.lucene.index.DocsEnum;
-import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.MultiFields;
-import org.apache.lucene.index.IndexReaderContext;
-import org.apache.lucene.index.ReaderUtil;
-import org.apache.lucene.index.TermsEnum;
-import org.apache.lucene.index.AtomicReaderContext;
+import org.apache.lucene.index.*;
import org.apache.lucene.queries.function.FunctionValues;
import org.apache.lucene.queries.function.ValueSource;
import org.apache.lucene.queries.function.docvalues.FloatDocValues;
@@ -47,29 +30,45 @@ import org.apache.solr.request.SolrQuery
import org.apache.solr.response.SolrQueryResponse;
import org.apache.solr.schema.FieldType;
import org.apache.solr.schema.SchemaField;
-import org.apache.solr.search.QParser;
import org.apache.solr.update.processor.UpdateRequestProcessor;
import org.apache.solr.util.VersionedFile;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.*;
+
/**
* Obtains float field values from an external file.
*
+ * @see org.apache.solr.schema.ExternalFileField
+ * @see org.apache.solr.schema.ExternalFileFieldReloader
*/
public class FileFloatSource extends ValueSource {
+
private SchemaField field;
private final SchemaField keyField;
private final float defVal;
-
private final String dataDir;
- public FileFloatSource(SchemaField field, SchemaField keyField, float defVal, QParser parser) {
+ private static final Logger log = LoggerFactory.getLogger(FileFloatSource.class);
+
+ /**
+ * Creates a new FileFloatSource
+ * @param field the source's SchemaField
+ * @param keyField the field to use as a key
+ * @param defVal the default value to use if a field has no entry in the external file
+ * @param datadir the directory in which to look for the external file
+ */
+ public FileFloatSource(SchemaField field, SchemaField keyField, float defVal, String datadir) {
this.field = field;
this.keyField = keyField;
this.defVal = defVal;
- this.dataDir = parser.getReq().getCore().getDataDir();
+ this.dataDir = datadir;
}
@Override
@@ -117,11 +116,27 @@ public class FileFloatSource extends Val
+ ",defVal="+defVal+",dataDir="+dataDir+")";
}
-
+
+ /**
+ * Remove all cached entries. Values are lazily loaded next time getValues() is
+ * called.
+ */
public static void resetCache(){
floatCache.resetCache();
}
+ /**
+ * Refresh the cache for an IndexReader. The new values are loaded in the background
+ * and then swapped in, so queries against the cache should not block while the reload
+ * is happening.
+ * @param reader the IndexReader whose cache needs refreshing
+ */
+ public void refreshCache(IndexReader reader) {
+ log.info("Refreshing FlaxFileFloatSource cache for field {}", this.field.getName());
+ floatCache.refresh(reader, new Entry(this));
+ log.info("FlaxFileFloatSource cache for field {} reloaded", this.field.getName());
+ }
+
private final float[] getCachedFloats(IndexReader reader) {
return (float[])floatCache.get(reader, new Entry(this));
}
@@ -139,6 +154,18 @@ public class FileFloatSource extends Val
protected abstract Object createValue(IndexReader reader, Object key);
+ public void refresh(IndexReader reader, Object key) {
+ Object refreshedValues = createValue(reader, key);
+ synchronized (readerCache) {
+ Map innerCache = (Map) readerCache.get(reader);
+ if (innerCache == null) {
+ innerCache = new HashMap();
+ readerCache.put(reader, innerCache);
+ }
+ innerCache.put(key, refreshedValues);
+ }
+ }
+
public Object get(IndexReader reader, Object key) {
Map innerCache;
Object value;
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java Sun Oct 28 10:45:43 2012
@@ -44,7 +44,7 @@ public final class DefaultSolrCoreState
private volatile boolean recoveryRunning;
private RecoveryStrategy recoveryStrat;
- private boolean closed = false;
+ private volatile boolean closed = false;
private RefCounted<IndexWriter> refCntWriter;
@@ -113,7 +113,7 @@ public final class DefaultSolrCoreState
}
@Override
- public synchronized void newIndexWriter(SolrCore core, boolean rollback) throws IOException {
+ public synchronized void newIndexWriter(SolrCore core, boolean rollback, boolean forceNewDir) throws IOException {
log.info("Creating new IndexWriter...");
String coreName = core.getName();
synchronized (writerPauseLock) {
@@ -148,7 +148,7 @@ public final class DefaultSolrCoreState
}
}
}
- indexWriter = createMainIndexWriter(core, "DirectUpdateHandler2", true);
+ indexWriter = createMainIndexWriter(core, "DirectUpdateHandler2", forceNewDir);
log.info("New IndexWriter is ready to be used.");
// we need to null this so it picks up the new writer next get call
refCntWriter = null;
@@ -162,7 +162,7 @@ public final class DefaultSolrCoreState
@Override
public synchronized void rollbackIndexWriter(SolrCore core) throws IOException {
- newIndexWriter(core, true);
+ newIndexWriter(core, true, true);
}
protected SolrIndexWriter createMainIndexWriter(SolrCore core, String name, boolean forceNewDirectory) throws IOException {
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java Sun Oct 28 10:45:43 2012
@@ -45,7 +45,6 @@ import org.apache.lucene.search.MatchAll
import org.apache.lucene.search.Query;
import org.apache.lucene.search.TermQuery;
import org.apache.solr.common.SolrException;
-import org.apache.solr.common.SolrException.ErrorCode;
import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.SimpleOrderedMap;
@@ -447,7 +446,11 @@ public class DirectUpdateHandler2 extend
log.info("start "+cmd);
RefCounted<IndexWriter> iw = solrCoreState.getIndexWriter(core);
try {
- iw.get().prepareCommit();
+ final Map<String,String> commitData = new HashMap<String,String>();
+ commitData.put(SolrIndexWriter.COMMIT_TIME_MSEC_KEY,
+ String.valueOf(System.currentTimeMillis()));
+
+ iw.get().prepareCommit(commitData);
} finally {
iw.decref();
}
@@ -600,8 +603,8 @@ public class DirectUpdateHandler2 extend
}
@Override
- public void newIndexWriter(boolean rollback) throws IOException {
- solrCoreState.newIndexWriter(core, rollback);
+ public void newIndexWriter(boolean rollback, boolean forceNewDir) throws IOException {
+ solrCoreState.newIndexWriter(core, rollback, forceNewDir);
}
/**
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/update/SolrCoreState.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/update/SolrCoreState.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/update/SolrCoreState.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/update/SolrCoreState.java Sun Oct 28 10:45:43 2012
@@ -44,7 +44,7 @@ public abstract class SolrCoreState {
* @param rollback close IndexWriter if false, else rollback
* @throws IOException If there is a low-level I/O error.
*/
- public abstract void newIndexWriter(SolrCore core, boolean rollback) throws IOException;
+ public abstract void newIndexWriter(SolrCore core, boolean rollback, boolean forceNewDir) throws IOException;
/**
* Get the current IndexWriter. If a new IndexWriter must be created, use the
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/update/UpdateHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/update/UpdateHandler.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/update/UpdateHandler.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/update/UpdateHandler.java Sun Oct 28 10:45:43 2012
@@ -116,10 +116,11 @@ public abstract class UpdateHandler impl
* all of the index files.
*
* @param rollback IndexWriter if true else close
+ * @param forceNewDir Force a new Directory instance
*
* @throws IOException If there is a low-level I/O error.
*/
- public abstract void newIndexWriter(boolean rollback) throws IOException;
+ public abstract void newIndexWriter(boolean rollback, boolean forceNewDir) throws IOException;
public abstract SolrCoreState getSolrCoreState();
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java Sun Oct 28 10:45:43 2012
@@ -603,11 +603,15 @@ public class DistributedUpdateProcessor
for (Entry<String,Object> entry : ((Map<String,Object>) val).entrySet()) {
String key = entry.getKey();
Object fieldVal = entry.getValue();
+ boolean updateField = false;
if ("add".equals(key)) {
+ updateField = true;
oldDoc.addField( sif.getName(), fieldVal, sif.getBoost());
} else if ("set".equals(key)) {
+ updateField = true;
oldDoc.setField(sif.getName(), fieldVal, sif.getBoost());
} else if ("inc".equals(key)) {
+ updateField = true;
SolrInputField numericField = oldDoc.get(sif.getName());
if (numericField == null) {
oldDoc.setField(sif.getName(), fieldVal, sif.getBoost());
@@ -636,6 +640,12 @@ public class DistributedUpdateProcessor
}
}
+
+ // validate that the field being modified is not the id field.
+ if (updateField && idField.getName().equals(sif.getName())) {
+ throw new SolrException(ErrorCode.BAD_REQUEST, "Invalid update of id field: " + sif);
+ }
+
}
} else {
// normal fields are treated as a "set"
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/AnalysisAfterCoreReloadTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/AnalysisAfterCoreReloadTest.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/AnalysisAfterCoreReloadTest.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/AnalysisAfterCoreReloadTest.java Sun Oct 28 10:45:43 2012
@@ -23,49 +23,26 @@ import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
-import org.apache.solr.client.solrj.embedded.JettySolrRunner;
-import org.apache.solr.client.solrj.impl.HttpSolrServer;
-import org.apache.solr.client.solrj.request.CoreAdminRequest;
+import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer;
+import org.apache.solr.client.solrj.request.AbstractUpdateRequest.ACTION;
import org.apache.solr.client.solrj.request.QueryRequest;
import org.apache.solr.client.solrj.request.UpdateRequest;
-import org.apache.solr.client.solrj.request.AbstractUpdateRequest.ACTION;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.core.SolrCore;
-import org.apache.solr.util.AbstractSolrTestCase;
-import org.junit.After;
+import org.junit.BeforeClass;
-public class AnalysisAfterCoreReloadTest extends AbstractSolrTestCase {
- private File homeDir;
+public class AnalysisAfterCoreReloadTest extends SolrTestCaseJ4 {
+
int port = 0;
static final String context = "/solr";
- JettySolrRunner jetty;
+
static final String collection = "collection1";
- @After
- public void cleanUp() throws Exception {
- jetty.stop();
- if (homeDir != null && homeDir.isDirectory() && homeDir.exists())
- recurseDelete(homeDir);
- }
-
- @Override
- public String getSolrHome() {
- return homeDir.getAbsolutePath();
+ @BeforeClass
+ public static void beforeClass() throws Exception {
+ initCore("solrconfig.xml", "schema.xml");
}
- @Override
- public void setUp() throws Exception {
- homeDir = new File(TEMP_DIR + File.separator + "solr-test-home-" + System.nanoTime());
- homeDir.mkdirs();
- FileUtils.copyDirectory(new File(getFile("solr/" + collection).getParent()), homeDir, false);
-
- super.setUp();
-
- jetty = new JettySolrRunner(getSolrHome(), context, 0 );
- jetty.start(false);
- port = jetty.getLocalPort();
- }
-
public void testStopwordsAfterCoreReload() throws Exception {
SolrInputDocument doc = new SolrInputDocument();
doc.setField( "id", "42" );
@@ -100,8 +77,7 @@ public class AnalysisAfterCoreReloadTest
// overwrite stopwords file with stopword list ["stopwordc"] and reload the core
overwriteStopwords("stopwordc\n");
- SolrServer coreadmin = getSolrAdmin();
- CoreAdminRequest.reloadCore(collection, coreadmin);
+ h.getCoreContainer().reload(collection);
up.process( getSolrCore() );
@@ -133,42 +109,33 @@ public class AnalysisAfterCoreReloadTest
SolrCore core = h.getCoreContainer().getCore(collection);
try {
String configDir = core.getResourceLoader().getConfigDir();
+ FileUtils.moveFile(new File(configDir, "stopwords.txt"), new File(configDir, "stopwords.txt.bak"));
File file = new File(configDir, "stopwords.txt");
FileUtils.writeStringToFile(file, stopwords);
+
} finally {
core.close();
}
}
- protected SolrServer getSolrAdmin() {
- return createServer("");
- }
- protected SolrServer getSolrCore() {
- return createServer(collection);
- }
- private SolrServer createServer( String name ) {
+ @Override
+ public void tearDown() throws Exception {
+ SolrCore core = h.getCoreContainer().getCore(collection);
+ String configDir;
try {
- // setup the server...
- String url = "http://127.0.0.1:"+port+context+"/"+name;
- HttpSolrServer s = new HttpSolrServer( url );
- s.setConnectionTimeout(SolrTestCaseJ4.DEFAULT_CONNECTION_TIMEOUT);
- s.setDefaultMaxConnectionsPerHost(100);
- s.setMaxTotalConnections(100);
- return s;
+ configDir = core.getResourceLoader().getConfigDir();
+ } finally {
+ core.close();
}
- catch( Exception ex ) {
- throw new RuntimeException( ex );
+ super.tearDown();
+ if (new File(configDir, "stopwords.txt.bak").exists()) {
+ FileUtils.deleteQuietly(new File(configDir, "stopwords.txt"));
+ FileUtils.moveFile(new File(configDir, "stopwords.txt.bak"), new File(configDir, "stopwords.txt"));
}
}
- @Override
- public String getSchemaFile() {
- return "schema.xml";
- }
-
- @Override
- public String getSolrConfigFile() {
- return "solrconfig.xml";
+ protected SolrServer getSolrCore() {
+ return new EmbeddedSolrServer(h.getCore());
}
}
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZk2Test.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZk2Test.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZk2Test.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZk2Test.java Sun Oct 28 10:45:43 2012
@@ -33,13 +33,22 @@ import org.apache.solr.common.cloud.ZkSt
import org.apache.solr.common.params.CommonParams;
import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.solr.servlet.SolrDispatchFilter;
+import org.junit.BeforeClass;
/**
* This test simply does a bunch of basic things in solrcloud mode and asserts things
* work as expected.
*/
public class BasicDistributedZk2Test extends AbstractFullDistribZkTestBase {
-
+ @BeforeClass
+ public static void beforeThisClass2() throws Exception {
+ // TODO: we use an fs based dir because something
+ // like a ram dir will not recover correctly right now
+ // because tran log will still exist on restart and ram
+ // dir will not persist - perhaps translog can empty on
+ // start if using an EphemeralDirectoryFactory
+ useFactory(null);
+ }
/*
* (non-Javadoc)
*
@@ -100,6 +109,7 @@ public class BasicDistributedZk2Test ext
// TODO: bring this to it's own method?
// try indexing to a leader that has no replicas up
+ ZkStateReader zkStateReader = cloudClient.getZkStateReader();
ZkNodeProps leaderProps = zkStateReader.getLeaderProps(
DEFAULT_COLLECTION, SHARD2);
@@ -175,9 +185,13 @@ public class BasicDistributedZk2Test ext
query("q", "*:*", "sort", "n_tl1 desc");
+ int oldLiveNodes = cloudClient.getZkStateReader().getZkClient().getChildren(ZkStateReader.LIVE_NODES_ZKNODE, null, true).size();
+
+ assertEquals(5, oldLiveNodes);
+
// kill a shard
CloudJettyRunner deadShard = chaosMonkey.stopShard(SHARD2, 0);
- cloudClient.connect();
+
// we are careful to make sure the downed node is no longer in the state,
// because on some systems (especially freebsd w/ blackhole enabled), trying
@@ -186,10 +200,23 @@ public class BasicDistributedZk2Test ext
jetties.addAll(shardToJetty.get(SHARD2));
jetties.remove(deadShard);
+ // wait till live nodes drops by 1
+ int liveNodes = cloudClient.getZkStateReader().getZkClient().getChildren(ZkStateReader.LIVE_NODES_ZKNODE, null, true).size();
+ int tries = 50;
+ while(oldLiveNodes == liveNodes) {
+ Thread.sleep(100);
+ if (tries-- == 0) {
+ fail("We expected a node to drop...");
+ }
+ liveNodes = cloudClient.getZkStateReader().getZkClient().getChildren(ZkStateReader.LIVE_NODES_ZKNODE, null, true).size();
+ }
+ assertEquals(4, liveNodes);
+
+ int cnt = 0;
for (CloudJettyRunner cjetty : jetties) {
waitToSeeNotLive(((SolrDispatchFilter) cjetty.jetty.getDispatchFilter()
.getFilter()).getCores().getZkController().getZkStateReader(),
- deadShard);
+ deadShard, cnt++);
}
waitToSeeNotLive(cloudClient.getZkStateReader(), deadShard);
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java Sun Oct 28 10:45:43 2012
@@ -67,7 +67,6 @@ import org.apache.solr.common.cloud.ZkNo
import org.apache.solr.common.cloud.ZkStateReader;
import org.apache.solr.common.params.CollectionParams.CollectionAction;
import org.apache.solr.common.params.CommonParams;
-import org.apache.solr.common.params.CoreAdminParams;
import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.solr.common.params.UpdateParams;
import org.apache.solr.common.util.NamedList;
@@ -75,6 +74,7 @@ import org.apache.solr.update.DirectUpda
import org.apache.solr.update.SolrCmdDistributor.Request;
import org.apache.solr.util.DefaultSolrThreadFactory;
import org.junit.Before;
+import org.junit.BeforeClass;
/**
* This test simply does a bunch of basic things in solrcloud mode and asserts things
@@ -114,6 +114,12 @@ public class BasicDistributedZkTest exte
CompletionService<Request> completionService;
Set<Future<Request>> pending;
+ @BeforeClass
+ public static void beforeThisClass2() throws Exception {
+ // TODO: we use an fs based dir because something
+ // like a ram dir will not recover correctly right now
+ useFactory(null);
+ }
@Before
@Override
@@ -154,7 +160,7 @@ public class BasicDistributedZkTest exte
public void doTest() throws Exception {
// setLoggingLevel(null);
-
+ ZkStateReader zkStateReader = cloudClient.getZkStateReader();
// make sure we have leaders for each shard
for (int j = 1; j < sliceCount; j++) {
zkStateReader.getLeaderProps(DEFAULT_COLLECTION, "shard" + j, 10000);
@@ -322,19 +328,19 @@ public class BasicDistributedZkTest exte
// would be better if these where all separate tests - but much, much
// slower
-// doOptimisticLockingAndUpdating();
-// testMultipleCollections();
-// testANewCollectionInOneInstance();
-// testSearchByCollectionName();
-// testANewCollectionInOneInstanceWithManualShardAssignement();
-// testNumberOfCommitsWithCommitAfterAdd();
-//
-// testUpdateProcessorsRunOnlyOnce("distrib-dup-test-chain-explicit");
-// testUpdateProcessorsRunOnlyOnce("distrib-dup-test-chain-implicit");
-//
-// testCollectionsAPI();
+ doOptimisticLockingAndUpdating();
+ testMultipleCollections();
+ testANewCollectionInOneInstance();
+ testSearchByCollectionName();
+ testANewCollectionInOneInstanceWithManualShardAssignement();
+ testNumberOfCommitsWithCommitAfterAdd();
+
+ testUpdateProcessorsRunOnlyOnce("distrib-dup-test-chain-explicit");
+ testUpdateProcessorsRunOnlyOnce("distrib-dup-test-chain-implicit");
+
+ testCollectionsAPI();
testCoreUnloadAndLeaders();
-
+ testUnloadLotsOfCores();
// Thread.sleep(10000000000L);
if (DEBUG) {
super.printLayout();
@@ -358,6 +364,8 @@ public class BasicDistributedZkTest exte
createCmd.setDataDir(core1DataDir);
server.request(createCmd);
+ ZkStateReader zkStateReader = solrj.getZkStateReader();
+
zkStateReader.updateClusterState(true);
int slices = zkStateReader.getClusterState().getCollectionStates().get("unloadcollection").size();
@@ -412,8 +420,6 @@ public class BasicDistributedZkTest exte
createCmd.setDataDir(core3dataDir);
server.request(createCmd);
- Thread.sleep(1000);
-
waitForRecoveriesToFinish("unloadcollection", zkStateReader, false);
// so that we start with some versions when we reload...
@@ -474,8 +480,6 @@ public class BasicDistributedZkTest exte
createCmd.setDataDir(core4dataDir);
server.request(createCmd);
- Thread.sleep(1000);
-
waitForRecoveriesToFinish("unloadcollection", zkStateReader, false);
// unload the leader again
@@ -509,9 +513,7 @@ public class BasicDistributedZkTest exte
createCmd.setCollection("unloadcollection");
createCmd.setDataDir(core1DataDir);
server.request(createCmd);
-
- Thread.sleep(1000);
-
+
waitForRecoveriesToFinish("unloadcollection", zkStateReader, false);
@@ -538,6 +540,65 @@ public class BasicDistributedZkTest exte
assertEquals(found3, found4);
}
+
+ private void testUnloadLotsOfCores() throws Exception {
+ SolrServer client = clients.get(2);
+ String url3 = getBaseUrl(client);
+ final HttpSolrServer server = new HttpSolrServer(url3);
+
+ ThreadPoolExecutor executor = new ThreadPoolExecutor(0, Integer.MAX_VALUE,
+ 5, TimeUnit.SECONDS, new SynchronousQueue<Runnable>(),
+ new DefaultSolrThreadFactory("testExecutor"));
+ int cnt = atLeast(6);
+ for (int i = 0; i < cnt; i++) {
+ final int freezeI = i;
+ executor.execute(new Runnable() {
+
+ @Override
+ public void run() {
+ Create createCmd = new Create();
+ createCmd.setCoreName("multiunload" + freezeI);
+ createCmd.setCollection("multiunload");
+ String core3dataDir = dataDir.getAbsolutePath() + File.separator
+ + System.currentTimeMillis() + "unloadcollection" + "_3n" + freezeI;
+ createCmd.setDataDir(core3dataDir);
+ try {
+ server.request(createCmd);
+ } catch (SolrServerException e) {
+ throw new RuntimeException(e);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ });
+ }
+ executor.shutdown();
+ executor.awaitTermination(120, TimeUnit.SECONDS);
+ executor = new ThreadPoolExecutor(0, Integer.MAX_VALUE, 5,
+ TimeUnit.SECONDS, new SynchronousQueue<Runnable>(),
+ new DefaultSolrThreadFactory("testExecutor"));
+ for (int j = 0; j < cnt; j++) {
+ final int freezeJ = j;
+ executor.execute(new Runnable() {
+ @Override
+ public void run() {
+ Unload unloadCmd = new Unload(true);
+ unloadCmd.setCoreName("multiunload" + freezeJ);
+ try {
+ server.request(unloadCmd);
+ } catch (SolrServerException e) {
+ throw new RuntimeException(e);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ });
+ Thread.sleep(random().nextInt(50));
+ }
+ executor.shutdown();
+ executor.awaitTermination(120, TimeUnit.SECONDS);
+ }
private String getBaseUrl(SolrServer client) {
@@ -580,7 +641,7 @@ public class BasicDistributedZkTest exte
// poll for a second - it can take a moment before we are ready to serve
waitForNon403or404or503(collectionClient);
}
-
+ ZkStateReader zkStateReader = solrj.getZkStateReader();
for (int j = 0; j < cnt; j++) {
waitForRecoveriesToFinish("awholynewcollection_" + j, zkStateReader, false);
}
@@ -794,7 +855,7 @@ public class BasicDistributedZkTest exte
}
Thread.sleep(50);
}
- printLayout();
+
fail("Could not find the new collection - " + exp.code() + " : " + collectionClient.getBaseURL());
}
@@ -1184,21 +1245,30 @@ public class BasicDistributedZkTest exte
indexDoc("collection2", getDoc(id, "10000000"));
indexDoc("collection2", getDoc(id, "10000001"));
- indexDoc("collection2", getDoc(id, "10000003"));
-
+ indexDoc("collection2", getDoc(id, "10000003"));
+ solrj.setDefaultCollection("collection2");
+ solrj.add(getDoc(id, "10000004"));
+ solrj.setDefaultCollection(null);
indexDoc("collection3", getDoc(id, "20000000"));
indexDoc("collection3", getDoc(id, "20000001"));
+ solrj.setDefaultCollection("collection3");
+ solrj.add(getDoc(id, "10000005"));
+ solrj.setDefaultCollection(null);
otherCollectionClients.get("collection2").get(0).commit();
otherCollectionClients.get("collection3").get(0).commit();
+ solrj.setDefaultCollection("collection1");
long collection1Docs = solrj.query(new SolrQuery("*:*")).getResults()
.getNumFound();
+
long collection2Docs = otherCollectionClients.get("collection2").get(0)
.query(new SolrQuery("*:*")).getResults().getNumFound();
+ System.out.println("found2: "+ collection2Docs);
long collection3Docs = otherCollectionClients.get("collection3").get(0)
.query(new SolrQuery("*:*")).getResults().getNumFound();
+ System.out.println("found3: "+ collection3Docs);
SolrQuery query = new SolrQuery("*:*");
query.set("collection", "collection2,collection3");
@@ -1225,6 +1295,8 @@ public class BasicDistributedZkTest exte
query.remove("collection");
found = solrj.query(query).getResults().getNumFound();
assertEquals(collection1Docs, found);
+
+ assertEquals(collection3Docs, collection2Docs - 1);
}
protected SolrInputDocument getDoc(Object... fields) throws Exception {
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyNothingIsSafeTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyNothingIsSafeTest.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyNothingIsSafeTest.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyNothingIsSafeTest.java Sun Oct 28 10:45:43 2012
@@ -29,6 +29,7 @@ import org.apache.solr.client.solrj.impl
import org.apache.solr.client.solrj.impl.HttpClientUtil;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.common.SolrInputDocument;
+import org.apache.solr.common.cloud.ZkStateReader;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
@@ -82,7 +83,7 @@ public class ChaosMonkeyNothingIsSafeTes
handle.clear();
handle.put("QTime", SKIPVAL);
handle.put("timestamp", SKIPVAL);
-
+ ZkStateReader zkStateReader = cloudClient.getZkStateReader();
// make sure we have leaders for each shard
for (int j = 1; j < sliceCount; j++) {
zkStateReader.getLeaderProps(DEFAULT_COLLECTION, "shard" + j, 10000);
@@ -189,19 +190,6 @@ public class ChaosMonkeyNothingIsSafeTes
}
}
}
-
- // skip the randoms - they can deadlock...
- protected void indexr(Object... fields) throws Exception {
- SolrInputDocument doc = getDoc(fields);
- indexDoc(doc);
- }
-
- private SolrInputDocument getDoc(Object... fields) {
- SolrInputDocument doc = new SolrInputDocument();
- addFields(doc, fields);
- addFields(doc, "rnd_b", true);
- return doc;
- }
class FullThrottleStopableIndexingThread extends StopableIndexingThread {
private HttpClient httpClient = HttpClientUtil.createClient(null);
@@ -306,4 +294,18 @@ public class ChaosMonkeyNothingIsSafeTes
};
+
+ // skip the randoms - they can deadlock...
+ protected void indexr(Object... fields) throws Exception {
+ SolrInputDocument doc = getDoc(fields);
+ indexDoc(doc);
+ }
+
+ SolrInputDocument getDoc(Object... fields) throws Exception {
+ SolrInputDocument doc = new SolrInputDocument();
+ addFields(doc, fields);
+ addFields(doc, "rnd_b", true);
+ return doc;
+ }
+
}
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java Sun Oct 28 10:45:43 2012
@@ -131,6 +131,7 @@ public class FullSolrCloudDistribCmdsTes
}
private void testThatCantForwardToLeaderFails() throws Exception {
+ ZkStateReader zkStateReader = cloudClient.getZkStateReader();
ZkNodeProps props = zkStateReader.getLeaderProps(DEFAULT_COLLECTION, "shard1");
chaosMonkey.stopShard("shard1");
@@ -250,7 +251,6 @@ public class FullSolrCloudDistribCmdsTes
private void testOptimisticUpdate(QueryResponse results) throws Exception {
SolrDocument doc = results.getResults().get(0);
- System.out.println("version:" + doc.getFieldValue(VersionInfo.VERSION_FIELD));
Long version = (Long) doc.getFieldValue(VersionInfo.VERSION_FIELD);
Integer theDoc = (Integer) doc.getFieldValue("id");
UpdateRequest uReq = new UpdateRequest();
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java Sun Oct 28 10:45:43 2012
@@ -478,7 +478,7 @@ public class OverseerTest extends SolrTe
}
private void verifyShardLeader(ZkStateReader reader, String collection, String shard, String expectedCore) throws InterruptedException, KeeperException {
- int maxIterations = 100;
+ int maxIterations = 200;
while(maxIterations-->0) {
reader.updateClusterState(true); // poll state
ZkNodeProps props = reader.getClusterState().getLeader(collection, shard);
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/RecoveryZkTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/RecoveryZkTest.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/RecoveryZkTest.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/RecoveryZkTest.java Sun Oct 28 10:45:43 2012
@@ -24,6 +24,7 @@ import org.apache.solr.client.solrj.Solr
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.embedded.JettySolrRunner;
import org.apache.solr.common.SolrInputDocument;
+import org.apache.solr.common.cloud.ZkStateReader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -71,7 +72,7 @@ public class RecoveryZkTest extends Abst
// make sure replication can start
Thread.sleep(1500);
-
+ ZkStateReader zkStateReader = cloudClient.getZkStateReader();
waitForRecoveriesToFinish(DEFAULT_COLLECTION, zkStateReader, false, true);
// stop indexing threads
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/SyncSliceTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/SyncSliceTest.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/SyncSliceTest.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/SyncSliceTest.java Sun Oct 28 10:45:43 2012
@@ -47,8 +47,11 @@ import org.junit.BeforeClass;
public class SyncSliceTest extends AbstractFullDistribZkTestBase {
@BeforeClass
- public static void beforeSuperClass() {
-
+ public static void beforeSuperClass() throws Exception {
+ // TODO: we use an fs based dir because something
+ // like a ram dir will not recovery correctly right now
+ // due to tran log persisting across restarts
+ useFactory(null);
}
@AfterClass
@@ -159,7 +162,7 @@ public class SyncSliceTest extends Abstr
// to talk to a downed node causes grief
waitToSeeDownInClusterState(leaderJetty, jetties);
- waitForThingsToLevelOut(15);
+ waitForThingsToLevelOut(45);
checkShardConsistency(false, true);
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/ZkSolrClientTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/ZkSolrClientTest.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/ZkSolrClientTest.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/cloud/ZkSolrClientTest.java Sun Oct 28 10:45:43 2012
@@ -19,23 +19,26 @@ package org.apache.solr.cloud;
import java.io.File;
import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.CyclicBarrier;
import java.util.concurrent.atomic.AtomicInteger;
import junit.framework.Assert;
-import junit.framework.TestCase;
import org.apache.solr.common.cloud.SolrZkClient;
-import org.apache.solr.core.SolrConfig;
import org.apache.solr.util.AbstractSolrTestCase;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.junit.AfterClass;
+import org.junit.BeforeClass;
public class ZkSolrClientTest extends AbstractSolrTestCase {
private static final boolean DEBUG = false;
+ @BeforeClass
+ public static void beforeClass() throws Exception {
+ initCore("solrconfig.xml", "schema.xml");
+ }
+
public void testConnect() throws Exception {
String zkDir = dataDir.getAbsolutePath() + File.separator
+ "zookeeper/server1/data";
@@ -43,7 +46,7 @@ public class ZkSolrClientTest extends Ab
server = new ZkTestServer(zkDir);
server.run();
-
+ AbstractZkTestCase.tryCleanSolrZkNode(server.getZkHost());
SolrZkClient zkClient = new SolrZkClient(server.getZkAddress(), AbstractZkTestCase.TIMEOUT);
zkClient.close();
@@ -57,7 +60,7 @@ public class ZkSolrClientTest extends Ab
server = new ZkTestServer(zkDir);
server.run();
-
+ AbstractZkTestCase.tryCleanSolrZkNode(server.getZkHost());
AbstractZkTestCase.makeSolrZkNode(server.getZkHost());
SolrZkClient zkClient = new SolrZkClient(server.getZkHost(),
@@ -77,7 +80,7 @@ public class ZkSolrClientTest extends Ab
try {
server = new ZkTestServer(zkDir);
server.run();
-
+ AbstractZkTestCase.tryCleanSolrZkNode(server.getZkHost());
AbstractZkTestCase.makeSolrZkNode(server.getZkHost());
zkClient = new SolrZkClient(server.getZkAddress(), AbstractZkTestCase.TIMEOUT);
@@ -170,6 +173,7 @@ public class ZkSolrClientTest extends Ab
final AtomicInteger cnt = new AtomicInteger();
ZkTestServer server = new ZkTestServer(zkDir);
server.run();
+ AbstractZkTestCase.tryCleanSolrZkNode(server.getZkHost());
Thread.sleep(400);
AbstractZkTestCase.makeSolrZkNode(server.getZkHost());
final SolrZkClient zkClient = new SolrZkClient(server.getZkAddress(), AbstractZkTestCase.TIMEOUT);
@@ -234,16 +238,6 @@ public class ZkSolrClientTest extends Ab
}
@Override
- public String getSchemaFile() {
- return null;
- }
-
- @Override
- public String getSolrConfigFile() {
- return null;
- }
-
- @Override
public void tearDown() throws Exception {
super.tearDown();
}
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/core/AlternateDirectoryTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/core/AlternateDirectoryTest.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/core/AlternateDirectoryTest.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/core/AlternateDirectoryTest.java Sun Oct 28 10:45:43 2012
@@ -41,7 +41,7 @@ public class AlternateDirectoryTest exte
assertTrue(TestIndexReaderFactory.newReaderCalled);
}
- static public class TestFSDirectoryFactory extends CachingDirectoryFactory {
+ static public class TestFSDirectoryFactory extends StandardDirectoryFactory {
public static volatile boolean openCalled = false;
public static volatile Directory dir;
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/core/IndexReaderFactoryTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/core/IndexReaderFactoryTest.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/core/IndexReaderFactoryTest.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/core/IndexReaderFactoryTest.java Sun Oct 28 10:45:43 2012
@@ -17,17 +17,13 @@ package org.apache.solr.core;
*/
import org.apache.solr.util.AbstractSolrTestCase;
+import org.junit.BeforeClass;
public class IndexReaderFactoryTest extends AbstractSolrTestCase {
- @Override
- public String getSchemaFile() {
- return "schema.xml";
- }
-
- @Override
- public String getSolrConfigFile() {
- return "solrconfig-termindex.xml";
+ @BeforeClass
+ public static void beforeClass() throws Exception {
+ initCore("solrconfig-termindex.xml", "schema.xml");
}
/**
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/core/SolrCoreCheckLockOnStartupTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/core/SolrCoreCheckLockOnStartupTest.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/core/SolrCoreCheckLockOnStartupTest.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/core/SolrCoreCheckLockOnStartupTest.java Sun Oct 28 10:45:43 2012
@@ -67,7 +67,7 @@ public class SolrCoreCheckLockOnStartupT
assertNotNull(t.getCause());
assertTrue(t.getCause() instanceof RuntimeException);
assertNotNull(t.getCause().getCause());
- assertTrue(t.getCause().getCause() instanceof LockObtainFailedException);
+ assertTrue(t.getCause().getCause().toString(), t.getCause().getCause() instanceof LockObtainFailedException);
} finally {
indexWriter.close();
directory.close();
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/core/TestArbitraryIndexDir.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/core/TestArbitraryIndexDir.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/core/TestArbitraryIndexDir.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/core/TestArbitraryIndexDir.java Sun Oct 28 10:45:43 2012
@@ -85,16 +85,6 @@ public class TestArbitraryIndexDir exten
}
- @Override
- public String getSchemaFile() {
- return null;
- }
-
- @Override
- public String getSolrConfigFile() {
- return null; // prevent superclass from creating it's own TestHarness
- }
-
@Test
public void testLoadNewIndexDir() throws IOException, ParserConfigurationException, SAXException, ParseException {
//add a doc in original index dir
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/core/TestJmxIntegration.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/core/TestJmxIntegration.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/core/TestJmxIntegration.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/core/TestJmxIntegration.java Sun Oct 28 10:45:43 2012
@@ -20,6 +20,7 @@ import org.apache.solr.core.JmxMonitored
import org.apache.solr.util.AbstractSolrTestCase;
import org.junit.After;
import org.junit.Before;
+import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
@@ -35,14 +36,10 @@ import java.util.*;
*/
public class TestJmxIntegration extends AbstractSolrTestCase {
- @Override
- public String getSchemaFile() {
- return "schema.xml";
- }
-
- @Override
- public String getSolrConfigFile() {
- return "solrconfig.xml";
+
+ @BeforeClass
+ public static void beforeClass() throws Exception {
+ initCore("solrconfig.xml", "schema.xml");
}
@Override
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/core/TestPropInject.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/core/TestPropInject.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/core/TestPropInject.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/core/TestPropInject.java Sun Oct 28 10:45:43 2012
@@ -17,24 +17,19 @@ package org.apache.solr.core;
* limitations under the License.
*/
-import java.io.IOException;
-
import org.apache.lucene.index.ConcurrentMergeScheduler;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.LogByteSizeMergePolicy;
import org.apache.solr.update.DirectUpdateHandler2;
import org.apache.solr.util.AbstractSolrTestCase;
import org.apache.solr.util.RefCounted;
+import org.junit.BeforeClass;
public class TestPropInject extends AbstractSolrTestCase {
- @Override
- public String getSchemaFile() {
- return "schema.xml";
- }
- @Override
- public String getSolrConfigFile() {
- return "solrconfig-propinject.xml";
+ @BeforeClass
+ public static void beforeClass() throws Exception {
+ initCore("solrconfig-propinject.xml", "schema.xml");
}
public void testMergePolicy() throws Exception {
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/core/TestXIncludeConfig.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/core/TestXIncludeConfig.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/core/TestXIncludeConfig.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/core/TestXIncludeConfig.java Sun Oct 28 10:45:43 2012
@@ -17,26 +17,19 @@ package org.apache.solr.core;
* limitations under the License.
*/
-import org.apache.solr.update.processor.UpdateRequestProcessorChain;
-import org.apache.solr.update.processor.RegexReplaceProcessorFactory;
-
-import org.apache.solr.util.AbstractSolrTestCase;
-
import javax.xml.parsers.DocumentBuilderFactory;
+import org.apache.solr.update.processor.RegexReplaceProcessorFactory;
+import org.apache.solr.update.processor.UpdateRequestProcessorChain;
+import org.apache.solr.util.AbstractSolrTestCase;
import org.junit.Assume;
+import org.junit.BeforeClass;
public class TestXIncludeConfig extends AbstractSolrTestCase {
- @Override
- public String getSchemaFile() {
- return "schema-xinclude.xml";
- }
-
- //public String getSolrConfigFile() { return "solrconfig.xml"; }
- @Override
- public String getSolrConfigFile() {
- return "solrconfig-xinclude.xml";
+ @BeforeClass
+ public static void beforeClass() throws Exception {
+ initCore("solrconfig-xinclude.xml", "schema-xinclude.xml");
}
@Override
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/handler/StandardRequestHandlerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/handler/StandardRequestHandlerTest.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/handler/StandardRequestHandlerTest.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/handler/StandardRequestHandlerTest.java Sun Oct 28 10:45:43 2012
@@ -27,15 +27,19 @@ import org.apache.solr.request.LocalSolr
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.search.QueryParsing;
import org.apache.solr.util.AbstractSolrTestCase;
+import org.junit.BeforeClass;
/**
* Most of the tests for StandardRequestHandler are in ConvertedLegacyTest
*
*/
public class StandardRequestHandlerTest extends AbstractSolrTestCase {
-
- @Override public String getSchemaFile() { return "schema.xml"; }
- @Override public String getSolrConfigFile() { return "solrconfig.xml"; }
+
+ @BeforeClass
+ public static void beforeClass() throws Exception {
+ initCore("solrconfig.xml", "schema.xml");
+ }
+
@Override public void setUp() throws Exception {
super.setUp();
lrf = h.getRequestFactory("standard", 0, 20 );
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java Sun Oct 28 10:45:43 2012
@@ -54,8 +54,8 @@ 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.util.AbstractSolrTestCase;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
+import org.junit.After;
+import org.junit.Before;
/**
* Test for ReplicationHandler
@@ -72,9 +72,9 @@ public class TestReplicationHandler exte
+ File.separator + "collection1" + File.separator + "conf"
+ File.separator;
- static JettySolrRunner masterJetty, slaveJetty;
- static SolrServer masterClient, slaveClient;
- static SolrInstance master = null, slave = null;
+ JettySolrRunner masterJetty, slaveJetty;
+ SolrServer masterClient, slaveClient;
+ SolrInstance master = null, slave = null;
static String context = "/solr";
@@ -83,9 +83,11 @@ public class TestReplicationHandler exte
static int nDocs = 500;
- @BeforeClass
- public static void beforeClass() throws Exception {
- useFactory(null); // need an FS factory
+ @Before
+ public void setup() throws Exception {
+ super.setUp();
+ // For manual testing only
+ // useFactory(null); // force an FS factory
master = new SolrInstance("master", null);
master.setUp();
masterJetty = createJetty(master);
@@ -109,8 +111,9 @@ public class TestReplicationHandler exte
}
}
- @AfterClass
- public static void afterClass() throws Exception {
+ @After
+ public void tearDown() throws Exception {
+ super.tearDown();
masterJetty.stop();
slaveJetty.stop();
master.tearDown();
@@ -415,7 +418,7 @@ public class TestReplicationHandler exte
// setup an xslt dir to force subdir file replication
File masterXsltDir = new File(master.getConfDir() + File.separator + "xslt");
File masterXsl = new File(masterXsltDir, "dummy.xsl");
- assertTrue(masterXsltDir.mkdir());
+ assertTrue("could not make dir " + masterXsltDir, masterXsltDir.mkdirs());
assertTrue(masterXsl.createNewFile());
File slaveXsltDir = new File(slave.getConfDir() + File.separator + "xslt");
@@ -522,6 +525,17 @@ public class TestReplicationHandler exte
for (int i = 0; i < nDocs; i++)
index(masterClient, "id", i, "name", "name = " + i);
+ // make sure prepareCommit doesn't mess up commit (SOLR-3938)
+ // todo: make SolrJ easier to pass arbitrary params to
+ String masterUrl = "http://127.0.0.1:" + masterJetty.getLocalPort() + "/solr/update?prepareCommit=true";
+ URL url = new URL(masterUrl);
+ InputStream stream = url.openStream();
+ try {
+ stream.close();
+ } catch (IOException e) {
+ //e.printStackTrace();
+ }
+
masterClient.commit();
NamedList masterQueryRsp = rQuery(nDocs, "*:*", masterClient);
@@ -529,10 +543,10 @@ public class TestReplicationHandler exte
assertEquals(nDocs, masterQueryResult.getNumFound());
// snappull
- String masterUrl = "http://127.0.0.1:" + slaveJetty.getLocalPort() + "/solr/replication?command=fetchindex&masterUrl=";
+ masterUrl = "http://127.0.0.1:" + slaveJetty.getLocalPort() + "/solr/replication?command=fetchindex&masterUrl=";
masterUrl += "http://127.0.0.1:" + masterJetty.getLocalPort() + "/solr/replication";
- URL url = new URL(masterUrl);
- InputStream stream = url.openStream();
+ url = new URL(masterUrl);
+ stream = url.openStream();
try {
stream.close();
} catch (IOException e) {
@@ -585,14 +599,10 @@ public class TestReplicationHandler exte
nDocs--;
masterClient.deleteByQuery("*:*");
- for (int i = 0; i < nDocs; i++)
- index(masterClient, "id", i, "name", "name = " + i);
masterClient.commit();
- NamedList masterQueryRsp = rQuery(nDocs, "*:*", masterClient);
- SolrDocumentList masterQueryResult = (SolrDocumentList) masterQueryRsp.get("response");
- assertEquals(nDocs, masterQueryResult.getNumFound());
+
//change solrconfig having 'replicateAfter startup' option on master
master.copyConfigFile(CONF_DIR + "solrconfig-master2.xml",
@@ -602,6 +612,16 @@ public class TestReplicationHandler exte
masterJetty = createJetty(master);
masterClient = createNewSolrServer(masterJetty.getLocalPort());
+
+ for (int i = 0; i < nDocs; i++)
+ index(masterClient, "id", i, "name", "name = " + i);
+
+ masterClient.commit();
+
+ NamedList masterQueryRsp = rQuery(nDocs, "*:*", masterClient);
+ SolrDocumentList masterQueryResult = (SolrDocumentList) masterQueryRsp.get("response");
+ assertEquals(nDocs, masterQueryResult.getNumFound());
+
slave.setTestPort(masterJetty.getLocalPort());
slave.copyConfigFile(slave.getSolrConfigFile(), "solrconfig.xml");
@@ -639,15 +659,6 @@ public class TestReplicationHandler exte
//stop slave
slaveJetty.stop();
- masterClient.deleteByQuery("*:*");
- for (int i = 0; i < 10; i++)
- index(masterClient, "id", i, "name", "name = " + i);
-
- masterClient.commit();
-
- NamedList masterQueryRsp = rQuery(10, "*:*", masterClient);
- SolrDocumentList masterQueryResult = (SolrDocumentList) masterQueryRsp.get("response");
- assertEquals(10, masterQueryResult.getNumFound());
//change solrconfig having 'replicateAfter startup' option on master
master.copyConfigFile(CONF_DIR + "solrconfig-master3.xml",
@@ -658,6 +669,16 @@ public class TestReplicationHandler exte
masterJetty = createJetty(master);
masterClient = createNewSolrServer(masterJetty.getLocalPort());
+ masterClient.deleteByQuery("*:*");
+ for (int i = 0; i < 10; i++)
+ index(masterClient, "id", i, "name", "name = " + i);
+
+ masterClient.commit();
+
+ NamedList masterQueryRsp = rQuery(10, "*:*", masterClient);
+ SolrDocumentList masterQueryResult = (SolrDocumentList) masterQueryRsp.get("response");
+ assertEquals(10, masterQueryResult.getNumFound());
+
slave.setTestPort(masterJetty.getLocalPort());
slave.copyConfigFile(slave.getSolrConfigFile(), "solrconfig.xml");
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java Sun Oct 28 10:45:43 2012
@@ -17,28 +17,24 @@
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.util.AbstractSolrTestCase;
import org.junit.Before;
+import org.junit.BeforeClass;
import org.junit.Test;
-import java.util.EnumSet;
-import java.util.Arrays;
-
/**
* :TODO: currently only tests some of the utilities in the LukeRequestHandler
*/
public class LukeRequestHandlerTest extends AbstractSolrTestCase {
- @Override
- public String getSchemaFile() {
- return "schema12.xml";
- }
-
- @Override
- public String getSolrConfigFile() {
- return "solrconfig.xml";
+ @BeforeClass
+ public static void beforeClass() throws Exception {
+ initCore("solrconfig.xml", "schema12.xml");
}
@Before
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/handler/component/StatsComponentTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/handler/component/StatsComponentTest.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/handler/component/StatsComponentTest.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/handler/component/StatsComponentTest.java Sun Oct 28 10:45:43 2012
@@ -16,25 +16,23 @@ package org.apache.solr.handler.componen
* limitations under the License.
*/
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
import java.util.Date;
+import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
-import java.util.HashMap;
import java.util.TimeZone;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
import org.apache.solr.common.params.CommonParams;
import org.apache.solr.common.params.MapSolrParams;
import org.apache.solr.common.params.StatsParams;
-
-import org.apache.solr.schema.IndexSchema;
-import org.apache.solr.schema.SchemaField;
-
import org.apache.solr.core.SolrCore;
import org.apache.solr.request.LocalSolrQueryRequest;
import org.apache.solr.request.SolrQueryRequest;
+import org.apache.solr.schema.SchemaField;
import org.apache.solr.util.AbstractSolrTestCase;
+import org.junit.BeforeClass;
/**
@@ -42,19 +40,15 @@ import org.apache.solr.util.AbstractSolr
*/
public class StatsComponentTest extends AbstractSolrTestCase {
- @Override
- public String getSchemaFile() {
- return "schema11.xml";
- }
-
- @Override
- public String getSolrConfigFile() {
- return "solrconfig.xml";
+ @BeforeClass
+ public static void beforeClass() throws Exception {
+ initCore("solrconfig.xml", "schema11.xml");
}
@Override
public void setUp() throws Exception {
super.setUp();
+ clearIndex();
lrf = h.getRequestFactory("standard", 0, 20);
}
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/highlight/HighlighterConfigTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/highlight/HighlighterConfigTest.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/highlight/HighlighterConfigTest.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/highlight/HighlighterConfigTest.java Sun Oct 28 10:45:43 2012
@@ -16,16 +16,19 @@
*/
package org.apache.solr.highlight;
+import java.util.HashMap;
+
import org.apache.solr.handler.component.HighlightComponent;
import org.apache.solr.util.AbstractSolrTestCase;
import org.apache.solr.util.TestHarness;
-
-import java.util.HashMap;
+import org.junit.BeforeClass;
public class HighlighterConfigTest extends AbstractSolrTestCase {
- @Override public String getSchemaFile() { return "schema.xml"; }
- // the default case (i.e. <highlight> without a class attribute) is tested every time sorlconfig.xml is used
- @Override public String getSolrConfigFile() { return "solrconfig-highlight.xml"; }
+
+ @BeforeClass
+ public static void beforeClass() throws Exception {
+ initCore("solrconfig-highlight.xml", "schema.xml");
+ }
@Override
public void setUp() throws Exception {
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/request/TestBinaryResponseWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/request/TestBinaryResponseWriter.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/request/TestBinaryResponseWriter.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/request/TestBinaryResponseWriter.java Sun Oct 28 10:45:43 2012
@@ -16,22 +16,22 @@
*/
package org.apache.solr.request;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.util.Locale;
+import java.util.UUID;
+
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.params.CommonParams;
-import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.JavaBinCodec;
+import org.apache.solr.common.util.NamedList;
import org.apache.solr.response.BinaryQueryResponseWriter;
import org.apache.solr.response.BinaryResponseWriter.Resolver;
import org.apache.solr.response.SolrQueryResponse;
import org.apache.solr.search.ReturnFields;
-
import org.apache.solr.util.AbstractSolrTestCase;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.util.Locale;
-import java.util.UUID;
+import org.junit.BeforeClass;
/**
* Test for BinaryResponseWriter
@@ -41,14 +41,10 @@ import java.util.UUID;
*/
public class TestBinaryResponseWriter extends AbstractSolrTestCase {
- @Override
- public String getSchemaFile() {
- return "schema12.xml";
- }
-
- @Override
- public String getSolrConfigFile() {
- return "solrconfig.xml";
+
+ @BeforeClass
+ public static void beforeClass() throws Exception {
+ initCore("solrconfig.xml", "schema12.xml");
}
/**
@@ -96,7 +92,7 @@ public class TestBinaryResponseWriter ex
assertTrue("ddd_s not found", out.getFieldNames().contains("ddd_s"));
assertEquals("Wrong number of fields found",
2, out.getFieldNames().size());
-
+ req.close();
}
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/request/TestWriterPerf.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/request/TestWriterPerf.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/request/TestWriterPerf.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/request/TestWriterPerf.java Sun Oct 28 10:45:43 2012
@@ -17,30 +17,34 @@
package org.apache.solr.request;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.util.ArrayList;
+
+import org.apache.solr.client.solrj.ResponseParser;
+import org.apache.solr.client.solrj.impl.BinaryResponseParser;
+import org.apache.solr.client.solrj.impl.XMLResponseParser;
import org.apache.solr.response.BinaryQueryResponseWriter;
import org.apache.solr.response.QueryResponseWriter;
import org.apache.solr.response.SolrQueryResponse;
import org.apache.solr.util.AbstractSolrTestCase;
-import org.apache.solr.client.solrj.ResponseParser;
-import org.apache.solr.client.solrj.impl.BinaryResponseParser;
-import org.apache.solr.client.solrj.impl.XMLResponseParser;
-
+import org.junit.BeforeClass;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.ArrayList;
-import java.io.*;
-
public class TestWriterPerf extends AbstractSolrTestCase {
public static final Logger log
= LoggerFactory.getLogger(TestWriterPerf.class);
- @Override
- public String getSchemaFile() { return "schema11.xml"; }
- @Override
- public String getSolrConfigFile() { return "solrconfig-functionquery.xml"; }
+ @BeforeClass
+ public static void beforeClass() throws Exception {
+ initCore("solrconfig-functionquery.xml", "schema11.xml");
+ }
+
public String getCoreName() { return "basic"; }
@Override
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java Sun Oct 28 10:45:43 2012
@@ -19,13 +19,16 @@ package org.apache.solr.search;
import org.apache.solr.common.SolrException;
import org.apache.solr.util.AbstractSolrTestCase;
+import org.junit.BeforeClass;
import org.junit.Test;
public class TestExtendedDismaxParser extends AbstractSolrTestCase {
- @Override
- public String getSchemaFile() { return "schema12.xml"; }
- @Override
- public String getSolrConfigFile() { return "solrconfig.xml"; }
+
+ @BeforeClass
+ public static void beforeClass() throws Exception {
+ initCore("solrconfig.xml", "schema12.xml");
+ }
+
// public String getCoreName() { return "collection1"; }
@Override
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/search/TestQueryTypes.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/search/TestQueryTypes.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/search/TestQueryTypes.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/search/TestQueryTypes.java Sun Oct 28 10:45:43 2012
@@ -18,13 +18,15 @@ package org.apache.solr.search;
import org.apache.solr.common.params.CommonParams;
import org.apache.solr.util.AbstractSolrTestCase;
+import org.junit.BeforeClass;
public class TestQueryTypes extends AbstractSolrTestCase {
- @Override
- public String getSchemaFile() { return "schema11.xml"; }
- @Override
- public String getSolrConfigFile() { return "solrconfig.xml"; }
+ @BeforeClass
+ public static void beforeClass() throws Exception {
+ initCore("solrconfig.xml", "schema11.xml");
+ }
+
public String getCoreName() { return "basic"; }
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/search/TestQueryUtils.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/search/TestQueryUtils.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/search/TestQueryUtils.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/search/TestQueryUtils.java Sun Oct 28 10:45:43 2012
@@ -22,7 +22,9 @@ import org.apache.lucene.search.BooleanQ
import org.apache.lucene.search.BooleanClause;
import org.apache.lucene.search.Query;
import org.apache.lucene.index.Term;
+import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.util.AbstractSolrTestCase;
+import org.junit.BeforeClass;
import java.util.List;
@@ -31,10 +33,11 @@ import java.util.List;
*/
public class TestQueryUtils extends AbstractSolrTestCase {
- @Override
- public String getSchemaFile() { return "schema.xml"; }
- @Override
- public String getSolrConfigFile() { return "solrconfig.xml"; }
+ @BeforeClass
+ public static void beforeClass() throws Exception {
+ initCore("solrconfig.xml", "schema.xml");
+ }
+
@Override
public void setUp() throws Exception {
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/search/TestSearchPerf.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/search/TestSearchPerf.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/search/TestSearchPerf.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/search/TestSearchPerf.java Sun Oct 28 10:45:43 2012
@@ -19,6 +19,7 @@ package org.apache.solr.search;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.*;
+import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.util.AbstractSolrTestCase;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.response.SolrQueryResponse;
@@ -26,6 +27,7 @@ import org.apache.solr.update.processor.
import org.apache.solr.update.processor.UpdateRequestProcessor;
import org.apache.solr.update.AddUpdateCommand;
import org.apache.solr.common.SolrInputDocument;
+import org.junit.BeforeClass;
import java.util.*;
import java.io.IOException;
@@ -35,10 +37,12 @@ import java.io.IOException;
*/
public class TestSearchPerf extends AbstractSolrTestCase {
- @Override
- public String getSchemaFile() { return "schema11.xml"; }
- @Override
- public String getSolrConfigFile() { return "solrconfig.xml"; }
+
+ @BeforeClass
+ public static void beforeClass() throws Exception {
+ initCore("solrconfig.xml", "schema11.xml");
+ }
+
@Override
public void setUp() throws Exception {
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/search/TestSurroundQueryParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/search/TestSurroundQueryParser.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/search/TestSurroundQueryParser.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/search/TestSurroundQueryParser.java Sun Oct 28 10:45:43 2012
@@ -19,13 +19,14 @@ package org.apache.solr.search;
*/
import org.apache.solr.util.AbstractSolrTestCase;
+import org.junit.BeforeClass;
public class TestSurroundQueryParser extends AbstractSolrTestCase {
- @Override
- public String getSchemaFile() { return "schemasurround.xml"; }
- @Override
- public String getSolrConfigFile() { return "solrconfig.xml"; }
+ @BeforeClass
+ public static void beforeClass() throws Exception {
+ initCore("solrconfig.xml", "schemasurround.xml");
+ }
// public String getCoreName() { return "collection1"; }
@Override
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/search/function/SortByFunctionTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/search/function/SortByFunctionTest.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/search/function/SortByFunctionTest.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/search/function/SortByFunctionTest.java Sun Oct 28 10:45:43 2012
@@ -17,6 +17,7 @@ package org.apache.solr.search.function;
*/
import org.apache.solr.util.AbstractSolrTestCase;
+import org.junit.BeforeClass;
/**
@@ -24,14 +25,18 @@ import org.apache.solr.util.AbstractSolr
*
**/
public class SortByFunctionTest extends AbstractSolrTestCase {
- @Override
- public String getSchemaFile() {
- return "schema.xml";
+
+
+ @BeforeClass
+ public static void beforeClass() throws Exception {
+ initCore("solrconfig.xml", "schema.xml");
}
+
@Override
- public String getSolrConfigFile() {
- return "solrconfig.xml";
+ public void setUp() throws Exception {
+ super.setUp();
+
}
public void test() throws Exception {
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/servlet/DirectSolrConnectionTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/servlet/DirectSolrConnectionTest.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/servlet/DirectSolrConnectionTest.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/servlet/DirectSolrConnectionTest.java Sun Oct 28 10:45:43 2012
@@ -19,15 +19,19 @@ package org.apache.solr.servlet;
import org.apache.solr.common.params.CommonParams;
import org.apache.solr.util.AbstractSolrTestCase;
+import org.junit.BeforeClass;
public class DirectSolrConnectionTest extends AbstractSolrTestCase
{
- @Override
- public String getSchemaFile() { return "solr/crazy-path-to-schema.xml"; }
- @Override
- public String getSolrConfigFile() { return "solr/crazy-path-to-config.xml"; }
+
+
+ @BeforeClass
+ public static void beforeClass() throws Exception {
+ initCore("solr/crazy-path-to-config.xml", "solr/crazy-path-to-schema.xml");
+ }
+
DirectSolrConnection direct;
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/update/AutoCommitTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/update/AutoCommitTest.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/update/AutoCommitTest.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/update/AutoCommitTest.java Sun Oct 28 10:45:43 2012
@@ -34,6 +34,7 @@ import org.apache.solr.response.SolrQuer
import org.apache.solr.search.SolrIndexSearcher;
import org.apache.solr.util.AbstractSolrTestCase;
import org.apache.solr.util.RefCounted;
+import org.junit.BeforeClass;
class NewSearcherListener implements SolrEventListener {
@@ -108,10 +109,10 @@ class NewSearcherListener implements Sol
@Slow
public class AutoCommitTest extends AbstractSolrTestCase {
- @Override
- public String getSchemaFile() { return "schema.xml"; }
- @Override
- public String getSolrConfigFile() { return "solrconfig.xml"; }
+ @BeforeClass
+ public static void beforeClass() throws Exception {
+ initCore("solrconfig.xml", "schema.xml");
+ }
public static void verbose(Object... args) {
if (!VERBOSE) return;
@@ -125,6 +126,14 @@ public class AutoCommitTest extends Abst
log.info(sb.toString());
// System.out.println(sb.toString());
}
+
+ @Override
+ public void setUp() throws Exception {
+ super.setUp();
+ clearIndex();
+ // reload the core to clear stats
+ h.getCoreContainer().reload(h.getCore().getName());
+ }
/**
* Take a string and make it an iterable ContentStream
@@ -141,8 +150,8 @@ public class AutoCommitTest extends Abst
}
public void testMaxDocs() throws Exception {
-
SolrCore core = h.getCore();
+
NewSearcherListener trigger = new NewSearcherListener();
DirectUpdateHandler2 updateHandler = (DirectUpdateHandler2)core.getUpdateHandler();
@@ -190,6 +199,7 @@ public class AutoCommitTest extends Abst
public void testMaxTime() throws Exception {
SolrCore core = h.getCore();
+
NewSearcherListener trigger = new NewSearcherListener();
core.registerNewSearcherListener(trigger);
DirectUpdateHandler2 updater = (DirectUpdateHandler2) core.getUpdateHandler();
@@ -263,6 +273,7 @@ public class AutoCommitTest extends Abst
public void testCommitWithin() throws Exception {
SolrCore core = h.getCore();
+
NewSearcherListener trigger = new NewSearcherListener();
core.registerNewSearcherListener(trigger);
DirectUpdateHandler2 updater = (DirectUpdateHandler2) core.getUpdateHandler();
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/update/DirectUpdateHandlerOptimizeTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/update/DirectUpdateHandlerOptimizeTest.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/update/DirectUpdateHandlerOptimizeTest.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/update/DirectUpdateHandlerOptimizeTest.java Sun Oct 28 10:45:43 2012
@@ -16,15 +16,15 @@ package org.apache.solr.update;
* limitations under the License.
*/
-import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
+import java.io.File;
+import java.io.FileFilter;
+
+import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.core.SolrCore;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.util.AbstractSolrTestCase;
-
-import java.io.File;
-import java.io.FileFilter;
+import org.junit.BeforeClass;
/**
@@ -33,15 +33,9 @@ import java.io.FileFilter;
**/
public class DirectUpdateHandlerOptimizeTest extends AbstractSolrTestCase {
- @Override
- public String getSchemaFile() {
- return "schema12.xml";
- }
-
- @Override
- public String getSolrConfigFile() {
- // return "solrconfig-duh-optimize.xml";
- return "solrconfig.xml";
+ @BeforeClass
+ public static void beforeClass() throws Exception {
+ initCore("solrconfig.xml", "schema12.xml");
}
Modified: lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java?rev=1402967&r1=1402966&r2=1402967&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java (original)
+++ lucene/dev/branches/LUCENE-2878/solr/core/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java Sun Oct 28 10:45:43 2012
@@ -40,7 +40,6 @@ import org.junit.Test;
*/
public class DirectUpdateHandlerTest extends SolrTestCaseJ4 {
- // TODO: fix this test to not require FSDirectory
static String savedFactory;
@BeforeClass
public static void beforeClass() throws Exception {