You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ro...@apache.org on 2014/12/31 15:05:50 UTC
svn commit: r1648697 [11/13] - in /lucene/dev/trunk/solr: ./
contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/
contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/
contrib/map-reduce/src/java/org/apache/solr/hadoo...
Modified: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java?rev=1648697&r1=1648696&r2=1648697&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java (original)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java Wed Dec 31 14:05:48 2014
@@ -24,8 +24,8 @@ import org.apache.lucene.util.TestUtil;
import org.apache.solr.SolrTestCaseJ4.SuppressSSL;
import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer;
import org.apache.solr.client.solrj.impl.BinaryResponseParser;
-import org.apache.solr.client.solrj.impl.ConcurrentUpdateSolrServer;
-import org.apache.solr.client.solrj.impl.HttpSolrServer;
+import org.apache.solr.client.solrj.impl.ConcurrentUpdateSolrClient;
+import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.impl.XMLResponseParser;
import org.apache.solr.client.solrj.request.AbstractUpdateRequest;
import org.apache.solr.client.solrj.request.AbstractUpdateRequest.ACTION;
@@ -85,10 +85,10 @@ abstract public class SolrExampleTests e
@Test
public void testExampleConfig() throws Exception
{
- SolrServer server = getSolrServer();
+ SolrClient client = getSolrClient();
// Empty the database...
- server.deleteByQuery( "*:*" );// delete everything!
+ client.deleteByQuery( "*:*" );// delete everything!
// Now add something...
SolrInputDocument doc = new SolrInputDocument();
@@ -99,21 +99,21 @@ abstract public class SolrExampleTests e
Assert.assertEquals( null, doc.getField("foo") );
Assert.assertTrue(doc.getField("name").getValue() != null );
- UpdateResponse upres = server.add( doc );
+ UpdateResponse upres = client.add( doc );
// System.out.println( "ADD:"+upres.getResponse() );
Assert.assertEquals(0, upres.getStatus());
- upres = server.commit( true, true );
+ upres = client.commit( true, true );
// System.out.println( "COMMIT:"+upres.getResponse() );
Assert.assertEquals(0, upres.getStatus());
- upres = server.optimize( true, true );
+ upres = client.optimize( true, true );
// System.out.println( "OPTIMIZE:"+upres.getResponse() );
Assert.assertEquals(0, upres.getStatus());
SolrQuery query = new SolrQuery();
query.setQuery( "id:"+docID );
- QueryResponse response = server.query( query );
+ QueryResponse response = client.query( query );
Assert.assertEquals(docID, response.getResults().get(0).getFieldValue("id") );
@@ -144,15 +144,15 @@ abstract public class SolrExampleTests e
doc5.addField( "timestamp_dt", new java.util.Date(), 1.0f );
docs.add(doc5);
- upres = server.add( docs );
+ upres = client.add( docs );
// System.out.println( "ADD:"+upres.getResponse() );
Assert.assertEquals(0, upres.getStatus());
- upres = server.commit( true, true );
+ upres = client.commit( true, true );
// System.out.println( "COMMIT:"+upres.getResponse() );
Assert.assertEquals(0, upres.getStatus());
- upres = server.optimize( true, true );
+ upres = client.optimize( true, true );
// System.out.println( "OPTIMIZE:"+upres.getResponse() );
Assert.assertEquals(0, upres.getStatus());
@@ -165,7 +165,7 @@ abstract public class SolrExampleTests e
query.addFacetField("timestamp_dt");
query.removeFilterQuery("inStock:true");
- response = server.query( query );
+ response = client.query( query );
Assert.assertEquals(0, response.getStatus());
Assert.assertEquals(5, response.getResults().getNumFound() );
Assert.assertEquals(3, response.getFacetQuery().size());
@@ -175,7 +175,7 @@ abstract public class SolrExampleTests e
// test a second query, test making a copy of the main query
SolrQuery query2 = query.getCopy();
query2.addFilterQuery("inStock:true");
- response = server.query( query2 );
+ response = client.query( query2 );
Assert.assertEquals(1, query2.getFilterQueries().length);
Assert.assertEquals(0, response.getStatus());
Assert.assertEquals(2, response.getResults().getNumFound() );
@@ -188,7 +188,7 @@ abstract public class SolrExampleTests e
query.addFacetQuery("price:[* TO 2]");
query.addFacetQuery("price:[2 TO 4]");
- response = server.query( query );
+ response = client.query( query );
assertTrue("echoed params are not a NamedList: " +
response.getResponseHeader().get("params").getClass(),
response.getResponseHeader().get("params") instanceof NamedList);
@@ -213,13 +213,13 @@ abstract public class SolrExampleTests e
if (jetty != null) {
// check system wide system handler + "/admin/info/system"
String url = jetty.getBaseUrl().toString();
- HttpSolrServer client = new HttpSolrServer(url);
+ HttpSolrClient adminClient = new HttpSolrClient(url);
SolrQuery q = new SolrQuery();
q.set("qt", "/admin/info/system");
- QueryResponse rsp = client.query(q);
+ QueryResponse rsp = adminClient.query(q);
assertNotNull(rsp.getResponse().get("mode"));
assertNotNull(rsp.getResponse().get("lucene"));
- client.shutdown();
+ adminClient.shutdown();
}
}
@@ -230,10 +230,10 @@ abstract public class SolrExampleTests e
@Test
public void testAddRetrieve() throws Exception
{
- SolrServer server = getSolrServer();
+ SolrClient client = getSolrClient();
// Empty the database...
- server.deleteByQuery( "*:*" );// delete everything!
+ client.deleteByQuery("*:*");// delete everything!
// Now add something...
SolrInputDocument doc1 = new SolrInputDocument();
@@ -251,28 +251,28 @@ abstract public class SolrExampleTests e
docs.add( doc2 );
// Add the documents
- server.add( docs );
- server.commit();
+ client.add(docs);
+ client.commit();
SolrQuery query = new SolrQuery();
query.setQuery( "*:*" );
query.addSortField( "price", SolrQuery.ORDER.asc );
- QueryResponse rsp = server.query( query );
+ QueryResponse rsp = client.query( query );
- assertEquals( 2, rsp.getResults().getNumFound() );
+ assertEquals(2, rsp.getResults().getNumFound());
// System.out.println( rsp.getResults() );
// Now do it again
- server.add( docs );
- server.commit();
+ client.add( docs );
+ client.commit();
- rsp = server.query( query );
+ rsp = client.query( query );
assertEquals( 2, rsp.getResults().getNumFound() );
// System.out.println( rsp.getResults() );
// query outside ascii range
query.setQuery("name:h\uD866\uDF05llo");
- rsp = server.query( query );
+ rsp = client.query( query );
assertEquals( 1, rsp.getResults().getNumFound() );
}
@@ -284,26 +284,26 @@ abstract public class SolrExampleTests e
@Test
public void testGetEmptyResults() throws Exception
{
- SolrServer server = getSolrServer();
+ SolrClient client = getSolrClient();
// Empty the database...
- server.deleteByQuery( "*:*" );// delete everything!
- server.commit();
+ client.deleteByQuery("*:*");// delete everything!
+ client.commit();
// Add two docs
SolrInputDocument doc = new SolrInputDocument();
doc.addField( "id", "id1", 1.0f );
doc.addField( "name", "doc1", 1.0f );
doc.addField( "price", 10 );
- server.add( doc );
+ client.add(doc);
doc = new SolrInputDocument();
doc.addField( "id", "id2", 1.0f );
- server.add( doc );
- server.commit();
+ client.add(doc);
+ client.commit();
// Make sure we get empty docs for unknown field
- SolrDocumentList out = server.query( new SolrQuery( "*:*" ).set("fl", "foofoofoo" ) ).getResults();
+ SolrDocumentList out = client.query( new SolrQuery( "*:*" ).set("fl", "foofoofoo" ) ).getResults();
assertEquals( 2, out.getNumFound() );
assertEquals( 0, out.get(0).size() );
assertEquals( 0, out.get(1).size() );
@@ -338,30 +338,30 @@ abstract public class SolrExampleTests e
Random random = random();
int numIterations = atLeast(3);
- SolrServer server = getSolrServer();
+ SolrClient client = getSolrClient();
// save the old parser, so we can set it back.
ResponseParser oldParser = null;
- if (server instanceof HttpSolrServer) {
- HttpSolrServer cserver = (HttpSolrServer) server;
- oldParser = cserver.getParser();
+ if (client instanceof HttpSolrClient) {
+ HttpSolrClient httpSolrClient = (HttpSolrClient) client;
+ oldParser = httpSolrClient.getParser();
}
try {
for (int iteration = 0; iteration < numIterations; iteration++) {
// choose format
- if (server instanceof HttpSolrServer) {
+ if (client instanceof HttpSolrClient) {
if (random.nextBoolean()) {
- ((HttpSolrServer) server).setParser(new BinaryResponseParser());
+ ((HttpSolrClient) client).setParser(new BinaryResponseParser());
} else {
- ((HttpSolrServer) server).setParser(new XMLResponseParser());
+ ((HttpSolrClient) client).setParser(new XMLResponseParser());
}
}
int numDocs = TestUtil.nextInt(random(), 1, 10 * RANDOM_MULTIPLIER);
// Empty the database...
- server.deleteByQuery("*:*");// delete everything!
+ client.deleteByQuery("*:*");// delete everything!
List<SolrInputDocument> docs = new ArrayList<>();
for (int i = 0; i < numDocs; i++) {
@@ -372,14 +372,14 @@ abstract public class SolrExampleTests e
docs.add(doc);
}
- server.add(docs);
- server.commit();
+ client.add(docs);
+ client.commit();
SolrQuery query = new SolrQuery();
query.setQuery("*:*");
query.setRows(numDocs);
- QueryResponse rsp = server.query( query );
+ QueryResponse rsp = client.query( query );
for (int i = 0; i < numDocs; i++) {
String expected = (String) docs.get(i).getFieldValue("unicode_s");
@@ -390,7 +390,7 @@ abstract public class SolrExampleTests e
} finally {
if (oldParser != null) {
// set the old parser back
- ((HttpSolrServer)server).setParser(oldParser);
+ ((HttpSolrClient)client).setParser(oldParser);
}
}
}
@@ -398,14 +398,14 @@ abstract public class SolrExampleTests e
@Test
public void testErrorHandling() throws Exception
{
- SolrServer server = getSolrServer();
+ SolrClient client = getSolrClient();
SolrQuery query = new SolrQuery();
query.set(CommonParams.QT, "/analysis/field");
query.set(AnalysisParams.FIELD_TYPE, "int");
query.set(AnalysisParams.FIELD_VALUE, "ignore_exception");
try {
- server.query( query );
+ client.query( query );
Assert.fail("should have a number format exception");
}
catch(SolrException ex) {
@@ -420,7 +420,7 @@ abstract public class SolrExampleTests e
try {
//the df=text here is a kluge for the test to supply a default field in case there is none in schema.xml
// alternatively, the resulting assertion could be modified to assert that no default field is specified.
- server.deleteByQuery( "{!df=text} ??::?? ignore_exception" ); // query syntax error
+ client.deleteByQuery( "{!df=text} ??::?? ignore_exception" ); // query syntax error
Assert.fail("should have a number format exception");
}
catch(SolrException ex) {
@@ -437,9 +437,9 @@ abstract public class SolrExampleTests e
doc.addField("id", "DOCID2", 1.0f);
doc.addField("name", "hello", 1.0f);
- if (server instanceof HttpSolrServer) {
+ if (client instanceof HttpSolrClient) {
try {
- server.add(doc);
+ client.add(doc);
fail("Should throw exception!");
} catch (SolrException ex) {
assertEquals(400, ex.code());
@@ -448,21 +448,21 @@ abstract public class SolrExampleTests e
} catch (Throwable t) {
Assert.fail("should have thrown a SolrException! not: " + t);
}
- } else if (server instanceof ConcurrentUpdateSolrServer) {
+ } else if (client instanceof ConcurrentUpdateSolrClient) {
//XXX concurrentupdatesolrserver reports errors differently
- ConcurrentUpdateSolrServer cs = (ConcurrentUpdateSolrServer) server;
- Field field = getCUSSExceptionField(cs);
- field.set(cs, null);
- cs.add(doc);
- cs.blockUntilFinished();
- Throwable lastError = (Throwable)field.get(cs);
+ ConcurrentUpdateSolrClient concurrentClient = (ConcurrentUpdateSolrClient) client;
+ Field field = getConcurrentClientExceptionField(concurrentClient);
+ field.set(concurrentClient, null);
+ concurrentClient.add(doc);
+ concurrentClient.blockUntilFinished();
+ Throwable lastError = (Throwable)field.get(concurrentClient);
assertNotNull("Should throw exception!", lastError); //XXX
} else {
- log.info("Ignorig update test for client:" + server.getClass().getName());
+ log.info("Ignoring update test for client:" + client.getClass().getName());
}
}
- private static Field getCUSSExceptionField(Object cs)
+ private static Field getConcurrentClientExceptionField(Object cs)
throws SecurityException, NoSuchFieldException, IllegalArgumentException {
Field field = cs.getClass().getDeclaredField("lastError");
field.setAccessible(true);
@@ -472,31 +472,31 @@ abstract public class SolrExampleTests e
@Test
public void testAugmentFields() throws Exception
{
- SolrServer server = getSolrServer();
+ SolrClient client = getSolrClient();
// Empty the database...
- server.deleteByQuery( "*:*" );// delete everything!
+ client.deleteByQuery("*:*");// delete everything!
// Now add something...
SolrInputDocument doc = new SolrInputDocument();
doc.addField( "id", "111", 1.0f );
doc.addField( "name", "doc1", 1.0f );
doc.addField( "price", 11 );
- server.add( doc );
- server.commit(); // make sure this gets in first
+ client.add(doc);
+ client.commit(); // make sure this gets in first
doc = new SolrInputDocument();
doc.addField( "id", "222", 1.0f );
doc.addField( "name", "doc2", 1.0f );
doc.addField( "price", 22 );
- server.add( doc );
- server.commit();
+ client.add(doc);
+ client.commit();
SolrQuery query = new SolrQuery();
query.setQuery( "*:*" );
query.set( CommonParams.FL, "id,price,[docid],[explain style=nl],score,aaa:[value v=aaa],ten:[value v=10 t=int]" );
query.addSortField( "price", SolrQuery.ORDER.asc );
- QueryResponse rsp = server.query( query );
+ QueryResponse rsp = client.query( query );
SolrDocumentList out = rsp.getResults();
assertEquals( 2, out.getNumFound() );
@@ -523,10 +523,10 @@ abstract public class SolrExampleTests e
@Test
public void testUpdateRequestWithParameters() throws Exception {
- SolrServer server1 = createNewSolrServer();
+ SolrClient client = createNewSolrClient();
- server1.deleteByQuery( "*:*" );
- server1.commit();
+ client.deleteByQuery("*:*");
+ client.commit();
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", "id1");
@@ -534,47 +534,47 @@ abstract public class SolrExampleTests e
UpdateRequest req = new UpdateRequest();
req.setParam("overwrite", "false");
req.add(doc);
- server1.request(req);
- server1.request(req);
- server1.commit();
+ client.request(req);
+ client.request(req);
+ client.commit();
SolrQuery query = new SolrQuery();
query.setQuery("*:*");
- QueryResponse rsp = server1.query(query);
+ QueryResponse rsp = client.query(query);
SolrDocumentList out = rsp.getResults();
assertEquals(2, out.getNumFound());
- if (!(server1 instanceof EmbeddedSolrServer)) {
+ if (!(client instanceof EmbeddedSolrServer)) {
/* Do not close in case of using EmbeddedSolrServer,
* as that would close the CoreContainer */
- server1.shutdown();
+ client.shutdown();
}
}
@Test
public void testContentStreamRequest() throws Exception {
- SolrServer server = getSolrServer();
- server.deleteByQuery( "*:*" );// delete everything!
- server.commit();
- QueryResponse rsp = server.query( new SolrQuery( "*:*") );
- Assert.assertEquals( 0, rsp.getResults().getNumFound() );
+ SolrClient client = getSolrClient();
+ client.deleteByQuery("*:*");// delete everything!
+ client.commit();
+ QueryResponse rsp = client.query( new SolrQuery( "*:*") );
+ Assert.assertEquals(0, rsp.getResults().getNumFound());
ContentStreamUpdateRequest up = new ContentStreamUpdateRequest("/update");
up.addFile(getFile("solrj/books.csv"), "application/csv");
up.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true);
- NamedList<Object> result = server.request(up);
+ NamedList<Object> result = client.request(up);
assertNotNull("Couldn't upload books.csv", result);
- rsp = server.query( new SolrQuery( "*:*") );
+ rsp = client.query( new SolrQuery( "*:*") );
Assert.assertEquals( 10, rsp.getResults().getNumFound() );
}
@Test
public void testMultiContentStreamRequest() throws Exception {
- SolrServer server = getSolrServer();
- server.deleteByQuery( "*:*" );// delete everything!
- server.commit();
- QueryResponse rsp = server.query( new SolrQuery( "*:*") );
- Assert.assertEquals( 0, rsp.getResults().getNumFound() );
+ SolrClient client = getSolrClient();
+ client.deleteByQuery("*:*");// delete everything!
+ client.commit();
+ QueryResponse rsp = client.query( new SolrQuery( "*:*") );
+ Assert.assertEquals(0, rsp.getResults().getNumFound());
ContentStreamUpdateRequest up = new ContentStreamUpdateRequest("/update");
up.addFile(getFile("solrj/docs1.xml"),"application/xml"); // 2
@@ -582,49 +582,49 @@ abstract public class SolrExampleTests e
up.setParam("a", "\u1234");
up.setParam(CommonParams.HEADER_ECHO_PARAMS, CommonParams.EchoParamStyle.ALL.toString());
up.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true);
- NamedList<Object> result = server.request(up);
+ NamedList<Object> result = client.request(up);
Assert.assertEquals("\u1234",
((NamedList)((NamedList) result.get("responseHeader")).get("params")).get("a"));
assertNotNull("Couldn't upload xml files", result);
- rsp = server.query( new SolrQuery( "*:*") );
+ rsp = client.query( new SolrQuery( "*:*") );
Assert.assertEquals( 5 , rsp.getResults().getNumFound() );
}
@Test
public void testLukeHandler() throws Exception
{
- SolrServer server = getSolrServer();
+ SolrClient client = getSolrClient();
// Empty the database...
- server.deleteByQuery( "*:*" );// delete everything!
+ client.deleteByQuery("*:*");// delete everything!
SolrInputDocument[] doc = new SolrInputDocument[5];
for( int i=0; i<doc.length; i++ ) {
doc[i] = new SolrInputDocument();
doc[i].setField( "id", "ID"+i, 1.0f );
- server.add( doc[i] );
+ client.add(doc[i]);
}
- server.commit();
+ client.commit();
assertNumFound( "*:*", doc.length ); // make sure it got in
LukeRequest luke = new LukeRequest();
luke.setShowSchema( false );
- LukeResponse rsp = luke.process( server );
+ LukeResponse rsp = luke.process( client );
assertNull( rsp.getFieldTypeInfo() ); // if you don't ask for it, the schema is null
luke.setShowSchema( true );
- rsp = luke.process( server );
+ rsp = luke.process( client );
assertNotNull( rsp.getFieldTypeInfo() );
}
@Test
public void testStatistics() throws Exception
{
- SolrServer server = getSolrServer();
+ SolrClient client = getSolrClient();
// Empty the database...
- server.deleteByQuery( "*:*" );// delete everything!
- server.commit();
+ client.deleteByQuery("*:*");// delete everything!
+ client.commit();
assertNumFound( "*:*", 0 ); // make sure it got in
String f = "val_i";
@@ -636,54 +636,54 @@ abstract public class SolrExampleTests e
doc.setField( "id", "doc"+i++ );
doc.setField( "name", "doc: "+num );
doc.setField( f, num );
- server.add( doc );
+ client.add(doc);
}
- server.commit();
+ client.commit();
assertNumFound( "*:*", nums.length ); // make sure they all got in
SolrQuery query = new SolrQuery( "*:*" );
query.setRows( 0 );
query.setGetFieldStatistics( f );
- QueryResponse rsp = server.query( query );
+ QueryResponse rsp = client.query( query );
FieldStatsInfo stats = rsp.getFieldStatsInfo().get( f );
- assertNotNull( stats );
+ assertNotNull(stats);
assertEquals( 23.0, ((Double)stats.getMin()).doubleValue(), 0 );
- assertEquals( 94.0, ((Double)stats.getMax()).doubleValue(), 0 );
+ assertEquals(94.0, ((Double) stats.getMax()).doubleValue(), 0);
assertEquals( new Long(nums.length), stats.getCount() );
assertEquals( new Long(0), stats.getMissing() );
- assertEquals( "26.4", stats.getStddev().toString().substring(0,4) );
+ assertEquals( "26.4", stats.getStddev().toString().substring(0, 4) );
// now lets try again with a new set... (odd median)
//----------------------------------------------------
- server.deleteByQuery( "*:*" );// delete everything!
- server.commit();
- assertNumFound( "*:*", 0 ); // make sure it got in
+ client.deleteByQuery( "*:*" );// delete everything!
+ client.commit();
+ assertNumFound("*:*", 0); // make sure it got in
nums = new int[] { 5, 7, 10, 19, 20 };
for( int num : nums ) {
SolrInputDocument doc = new SolrInputDocument();
doc.setField( "id", "doc"+i++ );
doc.setField( "name", "doc: "+num );
doc.setField( f, num );
- server.add( doc );
+ client.add( doc );
}
- server.commit();
+ client.commit();
assertNumFound( "*:*", nums.length ); // make sure they all got in
- rsp = server.query( query );
+ rsp = client.query( query );
stats = rsp.getFieldStatsInfo().get( f );
assertNotNull( stats );
- assertEquals( 5.0, ((Double)stats.getMin()).doubleValue(), 0 );
+ assertEquals(5.0, ((Double) stats.getMin()).doubleValue(), 0);
assertEquals( 20.0, ((Double)stats.getMax()).doubleValue(), 0 );
- assertEquals( new Long(nums.length), stats.getCount() );
+ assertEquals(new Long(nums.length), stats.getCount());
assertEquals( new Long(0), stats.getMissing() );
// Now try again with faceting
//---------------------------------
- server.deleteByQuery( "*:*" );// delete everything!
- server.commit();
+ client.deleteByQuery("*:*");// delete everything!
+ client.commit();
assertNumFound( "*:*", 0 ); // make sure it got in
nums = new int[] { 1, 2, 3, 4, 5, 10, 11, 12, 13, 14 };
for( i=0; i<nums.length; i++ ) {
@@ -693,15 +693,15 @@ abstract public class SolrExampleTests e
doc.setField( "name", "doc: "+num );
doc.setField( f, num );
doc.setField( "inStock", i < 5 );
- server.add( doc );
+ client.add( doc );
}
- server.commit();
+ client.commit();
assertNumFound( "inStock:true", 5 ); // make sure they all got in
assertNumFound( "inStock:false", 5 ); // make sure they all got in
// facet on 'inStock'
- query.addStatsFieldFacets( f, "inStock" );
- rsp = server.query( query );
+ query.addStatsFieldFacets(f, "inStock");
+ rsp = client.query( query );
stats = rsp.getFieldStatsInfo().get( f );
assertNotNull( stats );
@@ -727,26 +727,26 @@ abstract public class SolrExampleTests e
@Test
public void testPingHandler() throws Exception
{
- SolrServer server = getSolrServer();
+ SolrClient client = getSolrClient();
// Empty the database...
- server.deleteByQuery( "*:*" );// delete everything!
- server.commit();
+ client.deleteByQuery("*:*");// delete everything!
+ client.commit();
assertNumFound( "*:*", 0 ); // make sure it got in
// should be ok
- server.ping();
+ client.ping();
}
@Test
public void testFaceting() throws Exception
{
- SolrServer server = getSolrServer();
+ SolrClient client = getSolrClient();
// Empty the database...
- server.deleteByQuery( "*:*" );// delete everything!
- server.commit();
+ client.deleteByQuery("*:*");// delete everything!
+ client.commit();
assertNumFound( "*:*", 0 ); // make sure it got in
ArrayList<SolrInputDocument> docs = new ArrayList<>(10);
@@ -767,8 +767,8 @@ abstract public class SolrExampleTests e
}
docs.add( doc );
}
- server.add( docs );
- server.commit();
+ client.add(docs);
+ client.commit();
SolrQuery query = new SolrQuery( "*:*" );
query.remove( FacetParams.FACET_FIELD );
@@ -777,8 +777,8 @@ abstract public class SolrExampleTests e
query.setFacet( true );
query.setRows( 0 );
- QueryResponse rsp = server.query( query );
- assertEquals( docs.size(), rsp.getResults().getNumFound() );
+ QueryResponse rsp = client.query( query );
+ assertEquals(docs.size(), rsp.getResults().getNumFound());
List<FacetField> facets = rsp.getFacetFields();
assertEquals( 1, facets.size() );
@@ -790,19 +790,19 @@ abstract public class SolrExampleTests e
// should be the same facets with minCount=0
query.setFilterQueries( "features:two" );
- rsp = server.query( query );
+ rsp = client.query( query );
ff = rsp.getFacetField( "features" );
- assertEquals( "[two (5), four (2), five (1), three (1)]", ff.getValues().toString() );
+ assertEquals("[two (5), four (2), five (1), three (1)]", ff.getValues().toString());
// with minCount > 3
- query.setFacetMinCount( 4 );
- rsp = server.query( query );
+ query.setFacetMinCount(4);
+ rsp = client.query( query );
ff = rsp.getFacetField( "features" );
assertEquals( "[two (5)]", ff.getValues().toString() );
// with minCount > 3
- query.setFacetMinCount( -1 );
- rsp = server.query( query );
+ query.setFacetMinCount(-1);
+ rsp = client.query( query );
ff = rsp.getFacetField( "features" );
// System.out.println( rsp.getResults().getNumFound() + " :::: 444: "+ff.getValues() );
@@ -815,11 +815,11 @@ abstract public class SolrExampleTests e
@Test
public void testPivotFacetsStats() throws Exception {
- SolrServer server = getSolrServer();
+ SolrClient client = getSolrClient();
// Empty the database...
- server.deleteByQuery("*:*");// delete everything!
- server.commit();
+ client.deleteByQuery("*:*");// delete everything!
+ client.commit();
assertNumFound("*:*", 0); // make sure it got in
int id = 1;
@@ -836,8 +836,8 @@ abstract public class SolrExampleTests e
docs.add(makeTestDoc("id", id++, "features", "bbb", "manu", "ztc", "cat", "b", "inStock", false, "popularity", 38, "price", 47.98));
docs.add(makeTestDoc("id", id++, "features", "bbb", "manu", "ztc", "cat", "b", "inStock", true, "popularity", -38));
docs.add(makeTestDoc("id", id++, "cat", "b")); // something not matching all fields
- server.add(docs);
- server.commit();
+ client.add(docs);
+ client.commit();
for (String pivot : new String[] { "{!key=pivot_key stats=s1}features,manu",
"{!key=pivot_key stats=s1}features,manu,cat",
@@ -854,7 +854,7 @@ abstract public class SolrExampleTests e
query.setFacetMinCount(0);
query.setRows(0);
- QueryResponse rsp = server.query(query);
+ QueryResponse rsp = client.query(query);
// check top (ie: non-pivot) stats
Map<String, FieldStatsInfo> map = rsp.getFieldStatsInfo();
@@ -942,17 +942,17 @@ abstract public class SolrExampleTests e
@Test
public void testPivotFacetsStatsNotSupported() throws Exception {
- SolrServer server = getSolrServer();
+ SolrClient client = getSolrClient();
// Empty the database...
- server.deleteByQuery("*:*");// delete everything!
- server.commit();
+ client.deleteByQuery("*:*");// delete everything!
+ client.commit();
assertNumFound("*:*", 0); // make sure it got in
// results of this test should be the same regardless of whether any docs in index
if (random().nextBoolean()) {
- server.add(makeTestDoc("id", 1, "features", "aaa", "cat", "a", "inStock", true, "popularity", 12, "price", .017));
- server.commit();
+ client.add(makeTestDoc("id", 1, "features", "aaa", "cat", "a", "inStock", true, "popularity", 12, "price", .017));
+ client.commit();
}
ignoreException("is not currently supported");
@@ -962,7 +962,7 @@ abstract public class SolrExampleTests e
query.addFacetPivotField("{!stats=s1}features,manu");
query.addGetFieldStatistics("{!key=inStock_val tag=s1}inStock");
try {
- server.query(query);
+ client.query(query);
fail("SolrException should be thrown on query");
} catch (SolrException e) {
assertEquals("Pivot facet on boolean is not currently supported, bad request returned", 400, e.code());
@@ -977,7 +977,7 @@ abstract public class SolrExampleTests e
query.setFacetMinCount(0);
query.setRows(0);
try {
- server.query(query);
+ client.query(query);
fail("SolrException should be thrown on query");
} catch (SolrException e) {
assertEquals(400, e.code());
@@ -993,7 +993,7 @@ abstract public class SolrExampleTests e
query.setFacetMinCount(0);
query.setRows(0);
try {
- server.query(query);
+ client.query(query);
fail("SolrException should be thrown on query");
} catch (SolrException e) {
assertEquals("Pivot facet on string is not currently supported, bad request returned", 400, e.code());
@@ -1009,11 +1009,11 @@ abstract public class SolrExampleTests e
}
private void doPivotFacetTest(boolean missing) throws Exception {
- SolrServer server = getSolrServer();
+ SolrClient client = getSolrClient();
// Empty the database...
- server.deleteByQuery( "*:*" );// delete everything!
- server.commit();
+ client.deleteByQuery("*:*");// delete everything!
+ client.commit();
assertNumFound( "*:*", 0 ); // make sure it got in
int id = 1;
@@ -1030,8 +1030,8 @@ abstract public class SolrExampleTests e
docs.add( makeTestDoc( "id", id++, "features", "bbb", "cat", "b", "inStock", false ) );
docs.add( makeTestDoc( "id", id++, "features", "bbb", "cat", "b", "inStock", true ) );
docs.add( makeTestDoc( "id", id++, "cat", "b" ) ); // something not matching all fields
- server.add( docs );
- server.commit();
+ client.add(docs);
+ client.commit();
SolrQuery query = new SolrQuery( "*:*" );
query.addFacetPivotField("features,cat", "cat,features", "features,cat,inStock" );
@@ -1039,8 +1039,8 @@ abstract public class SolrExampleTests e
query.setFacetMissing( missing );
query.setRows( 0 );
- QueryResponse rsp = server.query( query );
- assertEquals( docs.size(), rsp.getResults().getNumFound() );
+ QueryResponse rsp = client.query( query );
+ assertEquals(docs.size(), rsp.getResults().getNumFound());
NamedList<List<PivotField>> pivots = rsp.getFacetPivot();
assertEquals( 3, pivots.size() );
@@ -1200,10 +1200,10 @@ abstract public class SolrExampleTests e
query = new SolrQuery( "*:*" );
query.addFacetPivotField( "{!ex=mytag key=mykey}features,cat" );
query.addFilterQuery("{!tag=mytag}-(features:bbb AND cat:a AND inStock:true)");//filters out one
- query.setFacetMinCount( 0 );
- query.setRows( 0 );
+ query.setFacetMinCount(0);
+ query.setRows(0);
- rsp = server.query( query );
+ rsp = client.query( query );
assertEquals( docs.size() - 1, rsp.getResults().getNumFound() );//one less due to filter
//The rest of this test should be just like the original since we've
@@ -1240,10 +1240,10 @@ abstract public class SolrExampleTests e
@Test
public void testChineseDefaults() throws Exception {
- SolrServer server = getSolrServer();
+ SolrClient client = getSolrClient();
// Empty the database...
- server.deleteByQuery( "*:*" );// delete everything!
- server.commit();
+ client.deleteByQuery("*:*");// delete everything!
+ client.commit();
assertNumFound( "*:*", 0 ); // make sure it got in
// Beijing medical University
@@ -1254,28 +1254,28 @@ abstract public class SolrExampleTests e
req.add(doc);
req.setAction(ACTION.COMMIT, true, true );
- req.process( server );
+ req.process( client );
// Beijing university should match:
SolrQuery query = new SolrQuery("å京大å¦");
- QueryResponse rsp = server.query( query );
+ QueryResponse rsp = client.query( query );
assertEquals(1, rsp.getResults().getNumFound());
}
@Test
public void testRealtimeGet() throws Exception
{
- SolrServer server = getSolrServer();
+ SolrClient client = getSolrClient();
// Empty the database...
- server.deleteByQuery( "*:*" );// delete everything!
+ client.deleteByQuery("*:*");// delete everything!
// Now add something...
SolrInputDocument doc = new SolrInputDocument();
doc.addField( "id", "DOCID", 1.0f );
doc.addField( "name", "hello", 1.0f );
- server.add( doc );
- server.commit(); // Since the transaction log is disabled in the example, we need to commit
+ client.add(doc);
+ client.commit(); // Since the transaction log is disabled in the example, we need to commit
SolrQuery q = new SolrQuery();
q.setRequestHandler("/get");
@@ -1285,7 +1285,7 @@ abstract public class SolrExampleTests e
// First Try with the BinaryResponseParser
QueryRequest req = new QueryRequest( q );
req.setResponseParser(new BinaryResponseParser());
- QueryResponse rsp = req.process(server);
+ QueryResponse rsp = req.process(client);
SolrDocument out = (SolrDocument)rsp.getResponse().get("doc");
assertEquals("DOCID", out.get("id"));
assertEquals("hello", out.get("name"));
@@ -1293,7 +1293,7 @@ abstract public class SolrExampleTests e
// Then with the XMLResponseParser
req.setResponseParser(new XMLResponseParser());
- rsp = req.process(server);
+ rsp = req.process(client);
out = (SolrDocument)rsp.getResponse().get("doc");
assertEquals("DOCID", out.get("id"));
assertEquals("hello", out.get("name"));
@@ -1303,18 +1303,18 @@ abstract public class SolrExampleTests e
@Test
public void testUpdateField() throws Exception {
//no versions
- SolrServer server = getSolrServer();
- server.deleteByQuery("*:*");
- server.commit();
+ SolrClient client = getSolrClient();
+ client.deleteByQuery("*:*");
+ client.commit();
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", "unique");
doc.addField("name", "gadget");
doc.addField("price_f", 1);
- server.add(doc);
- server.commit();
+ client.add(doc);
+ client.commit();
SolrQuery q = new SolrQuery("*:*");
q.setFields("id","price_f","name", "_version_");
- QueryResponse resp = server.query(q);
+ QueryResponse resp = client.query(q);
assertEquals("Doc count does not match", 1, resp.getResults().getNumFound());
Long version = (Long)resp.getResults().get(0).getFirstValue("_version_");
assertNotNull("no version returned", version);
@@ -1329,12 +1329,12 @@ abstract public class SolrExampleTests e
doc.addField("_version_", version+1);
doc.addField("price_f", oper);
try {
- server.add(doc);
- if(server instanceof HttpSolrServer) { //XXX concurrent server reports exceptions differently
+ client.add(doc);
+ if(client instanceof HttpSolrClient) { //XXX concurrent client reports exceptions differently
fail("Operation should throw an exception!");
} else {
- server.commit(); //just to be sure the client has sent the doc
- assertTrue("CUSS did not report an error", ((Throwable)getCUSSExceptionField(server).get(server)).getMessage().contains("Conflict"));
+ client.commit(); //just to be sure the client has sent the doc
+ assertTrue("ConcurrentUpdateSolrClient did not report an error", ((Throwable) getConcurrentClientExceptionField(client).get(client)).getMessage().contains("Conflict"));
}
} catch (SolrException se) {
assertTrue("No identifiable error message", se.getMessage().contains("version conflict for unique"));
@@ -1345,9 +1345,9 @@ abstract public class SolrExampleTests e
doc.addField("id", "unique");
doc.addField("_version_", version);
doc.addField("price_f", oper);
- server.add(doc);
- server.commit();
- resp = server.query(q);
+ client.add(doc);
+ client.commit();
+ resp = client.query(q);
assertEquals("Doc count does not match", 1, resp.getResults().getNumFound());
assertEquals("price was not updated?", 100.0f, resp.getResults().get(0).getFirstValue("price_f"));
assertEquals("no name?", "gadget", resp.getResults().get(0).getFirstValue("name"));
@@ -1357,9 +1357,9 @@ abstract public class SolrExampleTests e
doc = new SolrInputDocument();
doc.addField("id", "unique");
doc.addField("price_f", oper);
- server.add(doc);
- server.commit();
- resp = server.query(q);
+ client.add(doc);
+ client.commit();
+ resp = client.query(q);
assertEquals("Doc count does not match", 1, resp.getResults().getNumFound());
assertEquals("price was not updated?", 200.0f, resp.getResults().get(0).getFirstValue("price_f"));
assertEquals("no name?", "gadget", resp.getResults().get(0).getFirstValue("name"));
@@ -1367,20 +1367,20 @@ abstract public class SolrExampleTests e
@Test
public void testUpdateMultiValuedField() throws Exception {
- SolrServer solrServer = getSolrServer();
+ SolrClient solrClient = getSolrClient();
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", "123");
- solrServer.add(doc);
- solrServer.commit(true, true);
- QueryResponse response = solrServer.query(new SolrQuery("id:123"));
+ solrClient.add(doc);
+ solrClient.commit(true, true);
+ QueryResponse response = solrClient.query(new SolrQuery("id:123"));
assertEquals("Failed to add doc to cloud server", 1, response.getResults().getNumFound());
Map<String, List<String>> operation = new HashMap<>();
operation.put("set", Arrays.asList("first", "second", "third"));
doc.addField("multi_ss", operation);
- solrServer.add(doc);
- solrServer.commit(true, true);
- response = solrServer.query(new SolrQuery("id:123"));
+ solrClient.add(doc);
+ solrClient.commit(true, true);
+ response = solrClient.query(new SolrQuery("id:123"));
assertTrue("Multi-valued field did not return a collection", response.getResults().get(0).get("multi_ss") instanceof List);
List<String> values = (List<String>) response.getResults().get(0).get("multi_ss");
assertEquals("Field values was not updated with all values via atomic update", 3, values.size());
@@ -1389,42 +1389,42 @@ abstract public class SolrExampleTests e
operation.put("add", Arrays.asList("fourth", "fifth"));
doc.removeField("multi_ss");
doc.addField("multi_ss", operation);
- solrServer.add(doc);
- solrServer.commit(true, true);
- response = solrServer.query(new SolrQuery("id:123"));
+ solrClient.add(doc);
+ solrClient.commit(true, true);
+ response = solrClient.query(new SolrQuery("id:123"));
values = (List<String>) response.getResults().get(0).get("multi_ss");
assertEquals("Field values was not updated with all values via atomic update", 5, values.size());
}
@Test
public void testSetNullUpdates() throws Exception {
- SolrServer solrServer = getSolrServer();
+ SolrClient solrClient = getSolrClient();
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", "testSetNullUpdates");
doc.addField("single_s", "test-value");
doc.addField("multi_ss", Arrays.asList("first", "second"));
- solrServer.add(doc);
- solrServer.commit(true, true);
+ solrClient.add(doc);
+ solrClient.commit(true, true);
doc.removeField("single_s");
doc.removeField("multi_ss");
Map<String, Object> map = Maps.newHashMap();
map.put("set", null);
doc.addField("multi_ss", map);
- solrServer.add(doc);
- solrServer.commit(true, true);
- QueryResponse response = solrServer.query(new SolrQuery("id:testSetNullUpdates"));
+ solrClient.add(doc);
+ solrClient.commit(true, true);
+ QueryResponse response = solrClient.query(new SolrQuery("id:testSetNullUpdates"));
assertNotNull("Entire doc was replaced because null update was not written", response.getResults().get(0).getFieldValue("single_s"));
assertNull("Null update failed. Value still exists in document", response.getResults().get(0).getFieldValue("multi_ss"));
}
public void testSetNullUpdateOrder() throws Exception {
- SolrServer solrServer = getSolrServer();
+ SolrClient solrClient = getSolrClient();
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", "testSetNullUpdateOrder");
doc.addField("single_s", "test-value");
doc.addField("multi_ss", Arrays.asList("first", "second"));
- solrServer.add(doc);
- solrServer.commit(true, true);
+ solrClient.add(doc);
+ solrClient.commit(true, true);
Map<String, Object> map = Maps.newHashMap();
map.put("set", null);
@@ -1432,20 +1432,20 @@ abstract public class SolrExampleTests e
doc.addField("multi_ss", map);
doc.addField("id", "testSetNullUpdateOrder");
doc.addField("single_s", "test-value2");
- solrServer.add(doc);
- solrServer.commit();
+ solrClient.add(doc);
+ solrClient.commit();
- QueryResponse response = solrServer.query(new SolrQuery("id:testSetNullUpdateOrder"));
+ QueryResponse response = solrClient.query(new SolrQuery("id:testSetNullUpdateOrder"));
assertEquals("Field included after set null=true not updated via atomic update", "test-value2",
response.getResults().get(0).getFieldValue("single_s"));
}
@Test
public void testQueryWithParams() throws SolrServerException {
- SolrServer server = getSolrServer();
+ SolrClient client = getSolrClient();
SolrQuery q = new SolrQuery("query");
q.setParam("debug", true);
- QueryResponse resp = server.query(q);
+ QueryResponse resp = client.query(q);
assertEquals(
"server didn't respond with debug=true, didn't we pass in the parameter?",
"true",
@@ -1455,9 +1455,9 @@ abstract public class SolrExampleTests e
@Test
public void testChildDoctransformer() throws IOException, SolrServerException {
- SolrServer server = getSolrServer();
- server.deleteByQuery("*:*");
- server.commit();
+ SolrClient client = getSolrClient();
+ client.deleteByQuery("*:*");
+ client.commit();
int numRootDocs = TestUtil.nextInt(random(), 10, 100);
int maxDepth = TestUtil.nextInt(random(), 2, 5);
@@ -1465,22 +1465,22 @@ abstract public class SolrExampleTests e
Map<String,SolrInputDocument> allDocs = new HashMap<>();
for (int i =0; i < numRootDocs; i++) {
- server.add(genNestedDocuments(allDocs, 0, maxDepth));
+ client.add(genNestedDocuments(allDocs, 0, maxDepth));
}
- server.commit();
+ client.commit();
// sanity check
SolrQuery q = new SolrQuery("*:*");
- QueryResponse resp = server.query(q);
- assertEquals("Doc count does not match",
- allDocs.size(), resp.getResults().getNumFound());
+ QueryResponse resp = client.query(q);
+ assertEquals("Doc count does not match",
+ allDocs.size(), resp.getResults().getNumFound());
// base check - we know there is an exact number of these root docs
q = new SolrQuery("level_i:0");
q.setFields("*", "[child parentFilter=\"level_i:0\"]");
- resp = server.query(q);
+ resp = client.query(q);
assertEquals("topLevel count does not match", numRootDocs,
resp.getResults().getNumFound());
for (SolrDocument outDoc : resp.getResults()) {
@@ -1512,7 +1512,7 @@ abstract public class SolrExampleTests e
q.setFields("id,[child parentFilter=\"" + parentFilter +
"\" childFilter=\"" + childFilter +
"\" limit=\"" + maxKidCount + "\"]");
- resp = server.query(q);
+ resp = client.query(q);
for (SolrDocument outDoc : resp.getResults()) {
String docId = (String)outDoc.getFieldValue("id");
SolrInputDocument origDoc = allDocs.get(docId);
@@ -1560,7 +1560,7 @@ abstract public class SolrExampleTests e
q.setFields("id,[child parentFilter=\"" + parentFilter +
"\" childFilter=\"" + childFilter +
"\" limit=\"" + maxKidCount + "\"]");
- resp = server.query(q);
+ resp = client.query(q);
for (SolrDocument outDoc : resp.getResults()) {
String docId = (String)outDoc.getFieldValue("id");
SolrInputDocument origDoc = allDocs.get(docId);
@@ -1588,58 +1588,58 @@ abstract public class SolrExampleTests e
@Test
public void testFieldGlobbing() throws Exception {
- SolrServer server = getSolrServer();
+ SolrClient client = getSolrClient();
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", "testFieldGlobbing");
doc.addField("x_s", "x");
doc.addField("y_s", "y");
doc.addField("z_s", "z");
- server.add(doc);
- server.commit();
+ client.add(doc);
+ client.commit();
// id and glob
- QueryResponse response = server.query(new SolrQuery("id:testFieldGlobbing").addField("id").addField("*_s"));
+ QueryResponse response = client.query(new SolrQuery("id:testFieldGlobbing").addField("id").addField("*_s"));
assertEquals("Document not found", 1, response.getResults().getNumFound());
assertEquals("All requested fields were not returned", 4, response.getResults().get(0).getFieldNames().size());
// just globs
- response = server.query(new SolrQuery("id:testFieldGlobbing").addField("*_s"));
+ response = client.query(new SolrQuery("id:testFieldGlobbing").addField("*_s"));
assertEquals("Document not found", 1, response.getResults().getNumFound());
assertEquals("All requested fields were not returned", 3, response.getResults().get(0).getFieldNames().size());
// just id
- response = server.query(new SolrQuery("id:testFieldGlobbing").addField("id"));
+ response = client.query(new SolrQuery("id:testFieldGlobbing").addField("id"));
assertEquals("Document not found", 1, response.getResults().getNumFound());
assertEquals("All requested fields were not returned", 1, response.getResults().get(0).getFieldNames().size());
// id and pseudo field and glob
- response = server.query(new SolrQuery("id:testFieldGlobbing").addField("id").addField("[docid]").addField("*_s"));
+ response = client.query(new SolrQuery("id:testFieldGlobbing").addField("id").addField("[docid]").addField("*_s"));
assertEquals("Document not found", 1, response.getResults().getNumFound());
assertEquals("All requested fields were not returned", 5, response.getResults().get(0).getFieldNames().size());
// pseudo field and glob
- response = server.query(new SolrQuery("id:testFieldGlobbing").addField("[docid]").addField("*_s"));
+ response = client.query(new SolrQuery("id:testFieldGlobbing").addField("[docid]").addField("*_s"));
assertEquals("Document not found", 1, response.getResults().getNumFound());
assertEquals("All requested fields were not returned", 4, response.getResults().get(0).getFieldNames().size());
// just a pseudo field
- response = server.query(new SolrQuery("id:testFieldGlobbing").addField("[docid]"));
+ response = client.query(new SolrQuery("id:testFieldGlobbing").addField("[docid]"));
assertEquals("Document not found", 1, response.getResults().getNumFound());
assertEquals("All requested fields were not returned", 1, response.getResults().get(0).getFieldNames().size());
// only score
- response = server.query(new SolrQuery("id:testFieldGlobbing").addField("score"));
+ response = client.query(new SolrQuery("id:testFieldGlobbing").addField("score"));
assertEquals("Document not found", 1, response.getResults().getNumFound());
assertEquals("All requested fields were not returned", 1, response.getResults().get(0).getFieldNames().size());
// pseudo field and score
- response = server.query(new SolrQuery("id:testFieldGlobbing").addField("score").addField("[docid]"));
+ response = client.query(new SolrQuery("id:testFieldGlobbing").addField("score").addField("[docid]"));
assertEquals("Document not found", 1, response.getResults().getNumFound());
assertEquals("All requested fields were not returned", 2, response.getResults().get(0).getFieldNames().size());
// score and globs
- response = server.query(new SolrQuery("id:testFieldGlobbing").addField("score").addField("*_s"));
+ response = client.query(new SolrQuery("id:testFieldGlobbing").addField("score").addField("*_s"));
assertEquals("Document not found", 1, response.getResults().getNumFound());
assertEquals("All requested fields were not returned", 4, response.getResults().get(0).getFieldNames().size());
}
Modified: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTestsBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTestsBase.java?rev=1648697&r1=1648696&r2=1648697&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTestsBase.java (original)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTestsBase.java Wed Dec 31 14:05:48 2014
@@ -17,16 +17,10 @@
package org.apache.solr.client.solrj;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.atomic.AtomicInteger;
-
import junit.framework.Assert;
-
import org.apache.solr.SolrJettyTestBase;
-import org.apache.solr.client.solrj.request.UpdateRequest;
import org.apache.solr.client.solrj.request.AbstractUpdateRequest.ACTION;
+import org.apache.solr.client.solrj.request.UpdateRequest;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.client.solrj.util.ClientUtils;
import org.apache.solr.common.SolrDocument;
@@ -36,6 +30,11 @@ import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
+
abstract public class SolrExampleTestsBase extends SolrJettyTestBase {
private static Logger log = LoggerFactory
.getLogger(SolrExampleTestsBase.class);
@@ -46,10 +45,10 @@ abstract public class SolrExampleTestsBa
@Test
public void testCommitWithinOnAdd() throws Exception {
// make sure it is empty...
- SolrServer server = getSolrServer();
- server.deleteByQuery("*:*");// delete everything!
- server.commit();
- QueryResponse rsp = server.query(new SolrQuery("*:*"));
+ SolrClient client = getSolrClient();
+ client.deleteByQuery("*:*");// delete everything!
+ client.commit();
+ QueryResponse rsp = client.query(new SolrQuery("*:*"));
Assert.assertEquals(0, rsp.getResults().getNumFound());
// Now try a timed commit...
@@ -61,9 +60,9 @@ abstract public class SolrExampleTestsBa
up.add(doc3);
up.setCommitWithin(500); // a smaller commitWithin caused failures on the
// following assert
- up.process(server);
+ up.process(client);
- rsp = server.query(new SolrQuery("*:*"));
+ rsp = client.query(new SolrQuery("*:*"));
Assert.assertEquals(0, rsp.getResults().getNumFound());
// TODO: not a great way to test this - timing is easily out
@@ -71,7 +70,7 @@ abstract public class SolrExampleTestsBa
Thread.sleep(1000); // wait 1 sec
// now check that it comes out...
- rsp = server.query(new SolrQuery("id:id3"));
+ rsp = client.query(new SolrQuery("id:id3"));
int cnt = 0;
while (rsp.getResults().getNumFound() == 0) {
@@ -84,7 +83,7 @@ abstract public class SolrExampleTestsBa
Thread.sleep(2000); // wait 2 seconds...
- rsp = server.query(new SolrQuery("id:id3"));
+ rsp = client.query(new SolrQuery("id:id3"));
}
Assert.assertEquals(1, rsp.getResults().getNumFound());
@@ -94,12 +93,12 @@ abstract public class SolrExampleTestsBa
doc4.addField("id", "id4", 1.0f);
doc4.addField("name", "doc4", 1.0f);
doc4.addField("price", 10);
- server.add(doc4, 500);
+ client.add(doc4, 500);
Thread.sleep(1000); // wait 1 sec
// now check that it comes out...
- rsp = server.query(new SolrQuery("id:id4"));
+ rsp = client.query(new SolrQuery("id:id4"));
cnt = 0;
while (rsp.getResults().getNumFound() == 0) {
@@ -112,7 +111,7 @@ abstract public class SolrExampleTestsBa
Thread.sleep(2000); // wait 2 seconds...
- rsp = server.query(new SolrQuery("id:id3"));
+ rsp = client.query(new SolrQuery("id:id3"));
}
Assert.assertEquals(1, rsp.getResults().getNumFound());
@@ -121,10 +120,10 @@ abstract public class SolrExampleTestsBa
@Test
public void testCommitWithinOnDelete() throws Exception {
// make sure it is empty...
- SolrServer server = getSolrServer();
- server.deleteByQuery("*:*");// delete everything!
- server.commit();
- QueryResponse rsp = server.query(new SolrQuery("*:*"));
+ SolrClient client = getSolrClient();
+ client.deleteByQuery("*:*");// delete everything!
+ client.commit();
+ QueryResponse rsp = client.query(new SolrQuery("*:*"));
Assert.assertEquals(0, rsp.getResults().getNumFound());
// Now add one document...
@@ -132,21 +131,21 @@ abstract public class SolrExampleTestsBa
doc3.addField("id", "id3", 1.0f);
doc3.addField("name", "doc3", 1.0f);
doc3.addField("price", 10);
- server.add(doc3);
- server.commit();
+ client.add(doc3);
+ client.commit();
// now check that it comes out...
- rsp = server.query(new SolrQuery("id:id3"));
+ rsp = client.query(new SolrQuery("id:id3"));
Assert.assertEquals(1, rsp.getResults().getNumFound());
// now test commitWithin on a delete
UpdateRequest up = new UpdateRequest();
up.setCommitWithin(1000);
up.deleteById("id3");
- up.process(server);
+ up.process(client);
// the document should still be there
- rsp = server.query(new SolrQuery("id:id3"));
+ rsp = client.query(new SolrQuery("id:id3"));
Assert.assertEquals(1, rsp.getResults().getNumFound());
// check if the doc has been deleted every 250 ms for 30 seconds
@@ -154,7 +153,7 @@ abstract public class SolrExampleTestsBa
do {
Thread.sleep(250); // wait 250 ms
- rsp = server.query(new SolrQuery("id:id3"));
+ rsp = client.query(new SolrQuery("id:id3"));
if (rsp.getResults().getNumFound() == 0) {
return;
}
@@ -165,10 +164,10 @@ abstract public class SolrExampleTestsBa
@Test
public void testAddDelete() throws Exception {
- SolrServer server = getSolrServer();
+ SolrClient client = getSolrClient();
// Empty the database...
- server.deleteByQuery("*:*");// delete everything!
+ client.deleteByQuery("*:*");// delete everything!
SolrInputDocument[] doc = new SolrInputDocument[3];
for (int i = 0; i < 3; i++) {
@@ -177,28 +176,28 @@ abstract public class SolrExampleTestsBa
}
String id = (String) doc[0].getField("id").getFirstValue();
- server.add(doc[0]);
- server.commit();
+ client.add(doc[0]);
+ client.commit();
assertNumFound("*:*", 1); // make sure it got in
// make sure it got in there
- server.deleteById(id);
- server.commit();
+ client.deleteById(id);
+ client.commit();
assertNumFound("*:*", 0); // make sure it got out
// add it back
- server.add(doc[0]);
- server.commit();
+ client.add(doc[0]);
+ client.commit();
assertNumFound("*:*", 1); // make sure it got in
- server.deleteByQuery("id:\"" + ClientUtils.escapeQueryChars(id) + "\"");
- server.commit();
+ client.deleteByQuery("id:\"" + ClientUtils.escapeQueryChars(id) + "\"");
+ client.commit();
assertNumFound("*:*", 0); // make sure it got out
// Add two documents
for (SolrInputDocument d : doc) {
- server.add(d);
+ client.add(d);
}
- server.commit();
+ client.commit();
assertNumFound("*:*", 3); // make sure it got in
// should be able to handle multiple delete commands in a single go
@@ -206,17 +205,17 @@ abstract public class SolrExampleTestsBa
for (SolrInputDocument d : doc) {
ids.add(d.getFieldValue("id").toString());
}
- server.deleteById(ids);
- server.commit();
+ client.deleteById(ids);
+ client.commit();
assertNumFound("*:*", 0); // make sure it got out
}
@Test
public void testStreamingRequest() throws Exception {
- SolrServer server = getSolrServer();
+ SolrClient client = getSolrClient();
// Empty the database...
- server.deleteByQuery("*:*");// delete everything!
- server.commit();
+ client.deleteByQuery("*:*");// delete everything!
+ client.commit();
assertNumFound("*:*", 0); // make sure it got in
// Add some docs to the index
@@ -228,40 +227,40 @@ abstract public class SolrExampleTestsBa
req.add(doc);
}
req.setAction(ACTION.COMMIT, true, true);
- req.process(server);
+ req.process(client);
// Make sure it ran OK
SolrQuery query = new SolrQuery("*:*");
query.set(CommonParams.FL, "id,score,_docid_");
- QueryResponse response = server.query(query);
+ QueryResponse response = client.query(query);
assertEquals(0, response.getStatus());
assertEquals(10, response.getResults().getNumFound());
// Now make sure each document gets output
final AtomicInteger cnt = new AtomicInteger(0);
- server.queryAndStreamResponse(query, new StreamingResponseCallback() {
-
+ client.queryAndStreamResponse(query, new StreamingResponseCallback() {
+
@Override
public void streamDocListInfo(long numFound, long start, Float maxScore) {
assertEquals(10, numFound);
}
-
+
@Override
public void streamSolrDocument(SolrDocument doc) {
cnt.incrementAndGet();
-
+
// Make sure the transformer works for streaming
Float score = (Float) doc.get("score");
assertEquals("should have score", new Float(1.0), score);
}
-
+
});
assertEquals(10, cnt.get());
}
protected void assertNumFound(String query, int num)
throws SolrServerException, IOException {
- QueryResponse rsp = getSolrServer().query(new SolrQuery(query));
+ QueryResponse rsp = getSolrClient().query(new SolrQuery(query));
if (num != rsp.getResults().getNumFound()) {
fail("expected: " + num + " but had: " + rsp.getResults().getNumFound()
+ " :: " + rsp.getResults());
Modified: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleXMLTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleXMLTest.java?rev=1648697&r1=1648696&r2=1648697&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleXMLTest.java (original)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleXMLTest.java Wed Dec 31 14:05:48 2014
@@ -18,10 +18,9 @@
package org.apache.solr.client.solrj;
import org.apache.solr.SolrTestCaseJ4.SuppressSSL;
-import org.apache.solr.client.solrj.impl.HttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.impl.XMLResponseParser;
import org.apache.solr.client.solrj.request.RequestWriter;
-import org.apache.solr.util.ExternalPaths;
import org.junit.BeforeClass;
/**
@@ -36,17 +35,17 @@ public class SolrExampleXMLTest extends
}
@Override
- public SolrServer createNewSolrServer() {
+ public SolrClient createNewSolrClient() {
try {
String url = jetty.getBaseUrl().toString() + "/collection1";
- HttpSolrServer s = new HttpSolrServer(url);
- s.setUseMultiPartPost(random().nextBoolean());
- s.setConnectionTimeout(DEFAULT_CONNECTION_TIMEOUT);
- s.setDefaultMaxConnectionsPerHost(100);
- s.setMaxTotalConnections(100);
- s.setParser(new XMLResponseParser());
- s.setRequestWriter(new RequestWriter());
- return s;
+ HttpSolrClient client = new HttpSolrClient(url);
+ client.setUseMultiPartPost(random().nextBoolean());
+ client.setConnectionTimeout(DEFAULT_CONNECTION_TIMEOUT);
+ client.setDefaultMaxConnectionsPerHost(100);
+ client.setMaxTotalConnections(100);
+ client.setParser(new XMLResponseParser());
+ client.setRequestWriter(new RequestWriter());
+ return client;
} catch (Exception ex) {
throw new RuntimeException(ex);
}
Modified: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExceptionTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExceptionTest.java?rev=1648697&r1=1648696&r2=1648697&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExceptionTest.java (original)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExceptionTest.java Wed Dec 31 14:05:48 2014
@@ -20,7 +20,7 @@ package org.apache.solr.client.solrj;
import org.apache.http.client.HttpClient;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.solr.client.solrj.impl.HttpClientUtil;
-import org.apache.solr.client.solrj.impl.HttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrClient;
/**
*
@@ -39,7 +39,7 @@ public class SolrExceptionTest extends L
// set a 1ms timeout to let the connection fail faster.
HttpClient httpClient = HttpClientUtil.createClient(null);
HttpClientUtil.setConnectionTimeout(httpClient, 1);
- SolrServer client = new HttpSolrServer("http://[ff01::114]:11235/solr/", httpClient);
+ SolrClient client = new HttpSolrClient("http://[ff01::114]:11235/solr/", httpClient);
SolrQuery query = new SolrQuery("test123");
client.query(query);
client.shutdown();
Modified: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrSchemalessExampleTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrSchemalessExampleTest.java?rev=1648697&r1=1648696&r2=1648697&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrSchemalessExampleTest.java (original)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrSchemalessExampleTest.java Wed Dec 31 14:05:48 2014
@@ -24,7 +24,7 @@ import org.apache.http.client.methods.Ht
import org.apache.http.entity.InputStreamEntity;
import org.apache.solr.client.solrj.impl.BinaryRequestWriter;
import org.apache.solr.client.solrj.impl.BinaryResponseParser;
-import org.apache.solr.client.solrj.impl.HttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.util.ExternalPaths;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -33,8 +33,6 @@ import org.slf4j.LoggerFactory;
import java.io.ByteArrayInputStream;
import java.io.File;
-import java.io.FileOutputStream;
-import java.io.FileWriter;
import java.io.OutputStreamWriter;
import java.util.Properties;
@@ -68,41 +66,41 @@ public class SolrSchemalessExampleTest e
}
@Test
public void testArbitraryJsonIndexing() throws Exception {
- HttpSolrServer server = (HttpSolrServer) getSolrServer();
- server.deleteByQuery("*:*");
- server.commit();
+ HttpSolrClient client = (HttpSolrClient) getSolrClient();
+ client.deleteByQuery("*:*");
+ client.commit();
assertNumFound("*:*", 0); // make sure it got in
// two docs, one with uniqueKey, another without it
String json = "{\"id\":\"abc1\", \"name\": \"name1\"} {\"name\" : \"name2\"}";
- HttpClient httpClient = server.getHttpClient();
- HttpPost post = new HttpPost(server.getBaseURL() + "/update/json/docs");
+ HttpClient httpClient = client.getHttpClient();
+ HttpPost post = new HttpPost(client.getBaseURL() + "/update/json/docs");
post.setHeader("Content-Type", "application/json");
post.setEntity(new InputStreamEntity(new ByteArrayInputStream(json.getBytes("UTF-8")), -1));
HttpResponse response = httpClient.execute(post);
assertEquals(200, response.getStatusLine().getStatusCode());
- server.commit();
+ client.commit();
assertNumFound("*:*", 2);
}
@Override
- public SolrServer createNewSolrServer() {
+ public SolrClient createNewSolrClient() {
try {
// setup the server...
String url = jetty.getBaseUrl().toString() + "/collection1";
- HttpSolrServer s = new HttpSolrServer(url);
- s.setConnectionTimeout(DEFAULT_CONNECTION_TIMEOUT);
- s.setDefaultMaxConnectionsPerHost(100);
- s.setMaxTotalConnections(100);
- s.setUseMultiPartPost(random().nextBoolean());
+ HttpSolrClient client = new HttpSolrClient(url);
+ client.setConnectionTimeout(DEFAULT_CONNECTION_TIMEOUT);
+ client.setDefaultMaxConnectionsPerHost(100);
+ client.setMaxTotalConnections(100);
+ client.setUseMultiPartPost(random().nextBoolean());
if (random().nextBoolean()) {
- s.setParser(new BinaryResponseParser());
- s.setRequestWriter(new BinaryRequestWriter());
+ client.setParser(new BinaryResponseParser());
+ client.setRequestWriter(new BinaryRequestWriter());
}
- return s;
+ return client;
} catch (Exception ex) {
throw new RuntimeException(ex);
}
Modified: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/TestBatchUpdate.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/TestBatchUpdate.java?rev=1648697&r1=1648696&r2=1648697&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/TestBatchUpdate.java (original)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/TestBatchUpdate.java Wed Dec 31 14:05:48 2014
@@ -20,11 +20,10 @@ import org.apache.solr.SolrJettyTestBase
import org.apache.solr.SolrTestCaseJ4.SuppressSSL;
import org.apache.solr.client.solrj.beans.Field;
import org.apache.solr.client.solrj.impl.BinaryRequestWriter;
-import org.apache.solr.client.solrj.impl.HttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.request.RequestWriter;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrInputDocument;
-import org.apache.solr.util.ExternalPaths;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -50,28 +49,28 @@ public class TestBatchUpdate extends Sol
@Test
public void testWithXml() throws Exception {
- HttpSolrServer httpSolrServer = (HttpSolrServer) getSolrServer();
- httpSolrServer.setRequestWriter(new RequestWriter());
- httpSolrServer.deleteByQuery( "*:*" ); // delete everything!
- doIt(httpSolrServer);
+ HttpSolrClient client = (HttpSolrClient) getSolrClient();
+ client.setRequestWriter(new RequestWriter());
+ client.deleteByQuery("*:*"); // delete everything!
+ doIt(client);
}
@Test
public void testWithBinary()throws Exception{
- HttpSolrServer httpSolrServer = (HttpSolrServer) getSolrServer();
- httpSolrServer.setRequestWriter(new BinaryRequestWriter());
- httpSolrServer.deleteByQuery( "*:*" ); // delete everything!
- doIt(httpSolrServer);
+ HttpSolrClient client = (HttpSolrClient) getSolrClient();
+ client.setRequestWriter(new BinaryRequestWriter());
+ client.deleteByQuery("*:*"); // delete everything!
+ doIt(client);
}
@Test
public void testWithBinaryBean()throws Exception{
- HttpSolrServer httpSolrServer = (HttpSolrServer) getSolrServer();
- httpSolrServer.setRequestWriter(new BinaryRequestWriter());
- httpSolrServer.deleteByQuery( "*:*" ); // delete everything!
+ HttpSolrClient client = (HttpSolrClient) getSolrClient();
+ client.setRequestWriter(new BinaryRequestWriter());
+ client.deleteByQuery("*:*"); // delete everything!
final int[] counter = new int[1];
counter[0] = 0;
- httpSolrServer.addBeans(new Iterator<Bean>() {
+ client.addBeans(new Iterator<Bean>() {
@Override
public boolean hasNext() {
@@ -91,9 +90,9 @@ public class TestBatchUpdate extends Sol
//do nothing
}
});
- httpSolrServer.commit();
+ client.commit();
SolrQuery query = new SolrQuery("*:*");
- QueryResponse response = httpSolrServer.query(query);
+ QueryResponse response = client.query(query);
assertEquals(0, response.getStatus());
assertEquals(numdocs, response.getResults().getNumFound());
}
@@ -105,10 +104,10 @@ public class TestBatchUpdate extends Sol
String cat;
}
- private void doIt(HttpSolrServer httpSolrServer) throws SolrServerException, IOException {
+ private void doIt(HttpSolrClient client) throws SolrServerException, IOException {
final int[] counter = new int[1];
counter[0] = 0;
- httpSolrServer.add(new Iterator<SolrInputDocument>() {
+ client.add(new Iterator<SolrInputDocument>() {
@Override
public boolean hasNext() {
@@ -129,9 +128,9 @@ public class TestBatchUpdate extends Sol
}
});
- httpSolrServer.commit();
+ client.commit();
SolrQuery query = new SolrQuery("*:*");
- QueryResponse response = httpSolrServer.query(query);
+ QueryResponse response = client.query(query);
assertEquals(0, response.getStatus());
assertEquals(numdocs, response.getResults().getNumFound());
}
Added: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/TestLBHttpSolrClient.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/TestLBHttpSolrClient.java?rev=1648697&view=auto
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/TestLBHttpSolrClient.java (added)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/TestLBHttpSolrClient.java Wed Dec 31 14:05:48 2014
@@ -0,0 +1,321 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.solr.client.solrj;
+
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
+import junit.framework.Assert;
+import org.apache.commons.io.FileUtils;
+import org.apache.http.client.HttpClient;
+import org.apache.lucene.util.IOUtils;
+import org.apache.lucene.util.LuceneTestCase.Slow;
+import org.apache.lucene.util.QuickPatchThreadsFilter;
+import org.apache.solr.SolrIgnoredThreadsFilter;
+import org.apache.solr.SolrTestCaseJ4;
+import org.apache.solr.client.solrj.embedded.JettySolrRunner;
+import org.apache.solr.client.solrj.impl.HttpClientUtil;
+import org.apache.solr.client.solrj.impl.HttpSolrClient;
+import org.apache.solr.client.solrj.impl.LBHttpSolrClient;
+import org.apache.solr.client.solrj.response.QueryResponse;
+import org.apache.solr.client.solrj.response.SolrResponseBase;
+import org.apache.solr.common.SolrInputDocument;
+import org.apache.solr.common.params.ModifiableSolrParams;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Test for LBHttpSolrClient
+ *
+ * @since solr 1.4
+ */
+@Slow
+@ThreadLeakFilters(defaultFilters = true, filters = {
+ SolrIgnoredThreadsFilter.class,
+ QuickPatchThreadsFilter.class
+})
+public class TestLBHttpSolrClient extends SolrTestCaseJ4 {
+
+ private static final Logger log = LoggerFactory.getLogger(TestLBHttpSolrClient.class);
+
+ SolrInstance[] solr = new SolrInstance[3];
+ HttpClient httpClient;
+
+ // TODO: fix this test to not require FSDirectory
+ static String savedFactory;
+
+ @BeforeClass
+ public static void beforeClass() {
+ savedFactory = System.getProperty("solr.DirectoryFactory");
+ System.setProperty("solr.directoryFactory", "org.apache.solr.core.MockFSDirectoryFactory");
+ System.setProperty("tests.shardhandler.randomSeed", Long.toString(random().nextLong()));
+ }
+
+ @AfterClass
+ public static void afterClass() {
+ if (savedFactory == null) {
+ System.clearProperty("solr.directoryFactory");
+ } else {
+ System.setProperty("solr.directoryFactory", savedFactory);
+ }
+ System.clearProperty("tests.shardhandler.randomSeed");
+ }
+
+ @Override
+ public void setUp() throws Exception {
+ super.setUp();
+ httpClient = HttpClientUtil.createClient(null);
+ HttpClientUtil.setConnectionTimeout(httpClient, 1000);
+ for (int i = 0; i < solr.length; i++) {
+ solr[i] = new SolrInstance("solr/collection1" + i, createTempDir("instance-" + i).toFile(), 0);
+ solr[i].setUp();
+ solr[i].startJetty();
+ addDocs(solr[i]);
+ }
+ }
+
+ private void addDocs(SolrInstance solrInstance) throws IOException, SolrServerException {
+ List<SolrInputDocument> docs = new ArrayList<>();
+ for (int i = 0; i < 10; i++) {
+ SolrInputDocument doc = new SolrInputDocument();
+ doc.addField("id", i);
+ doc.addField("name", solrInstance.name);
+ docs.add(doc);
+ }
+ HttpSolrClient client = new HttpSolrClient(solrInstance.getUrl(), httpClient);
+ SolrResponseBase resp;
+ try {
+ resp = client.add(docs);
+ assertEquals(0, resp.getStatus());
+ resp = client.commit();
+ } finally {
+ client.shutdown();
+ }
+ assertEquals(0, resp.getStatus());
+ }
+
+ @Override
+ public void tearDown() throws Exception {
+ for (SolrInstance aSolr : solr) {
+ if (aSolr != null) {
+ aSolr.tearDown();
+ }
+ }
+ httpClient.getConnectionManager().shutdown();
+ super.tearDown();
+ }
+
+ public void testSimple() throws Exception {
+ String[] s = new String[solr.length];
+ for (int i = 0; i < solr.length; i++) {
+ s[i] = solr[i].getUrl();
+ }
+ LBHttpSolrClient client = new LBHttpSolrClient(httpClient, s);
+ client.setAliveCheckInterval(500);
+ SolrQuery solrQuery = new SolrQuery("*:*");
+ Set<String> names = new HashSet<>();
+ QueryResponse resp = null;
+ for (String value : s) {
+ resp = client.query(solrQuery);
+ assertEquals(10, resp.getResults().getNumFound());
+ names.add(resp.getResults().get(0).getFieldValue("name").toString());
+ }
+ assertEquals(3, names.size());
+
+ // Kill a server and test again
+ solr[1].jetty.stop();
+ solr[1].jetty = null;
+ names.clear();
+ for (String value : s) {
+ resp = client.query(solrQuery);
+ assertEquals(10, resp.getResults().getNumFound());
+ names.add(resp.getResults().get(0).getFieldValue("name").toString());
+ }
+ assertEquals(2, names.size());
+ assertFalse(names.contains("solr1"));
+
+ // Start the killed server once again
+ solr[1].startJetty();
+ // Wait for the alive check to complete
+ Thread.sleep(1200);
+ names.clear();
+ for (String value : s) {
+ resp = client.query(solrQuery);
+ assertEquals(10, resp.getResults().getNumFound());
+ names.add(resp.getResults().get(0).getFieldValue("name").toString());
+ }
+ assertEquals(3, names.size());
+ }
+
+ public void testTwoServers() throws Exception {
+ LBHttpSolrClient client = new LBHttpSolrClient(httpClient, solr[0].getUrl(), solr[1].getUrl());
+ client.setAliveCheckInterval(500);
+ SolrQuery solrQuery = new SolrQuery("*:*");
+ QueryResponse resp = null;
+ solr[0].jetty.stop();
+ solr[0].jetty = null;
+ resp = client.query(solrQuery);
+ String name = resp.getResults().get(0).getFieldValue("name").toString();
+ Assert.assertEquals("solr/collection11", name);
+ resp = client.query(solrQuery);
+ name = resp.getResults().get(0).getFieldValue("name").toString();
+ Assert.assertEquals("solr/collection11", name);
+ solr[1].jetty.stop();
+ solr[1].jetty = null;
+ solr[0].startJetty();
+ Thread.sleep(1200);
+ try {
+ resp = client.query(solrQuery);
+ } catch(SolrServerException e) {
+ // try again after a pause in case the error is lack of time to start server
+ Thread.sleep(3000);
+ resp = client.query(solrQuery);
+ }
+ name = resp.getResults().get(0).getFieldValue("name").toString();
+ Assert.assertEquals("solr/collection10", name);
+ }
+
+ public void testReliability() throws Exception {
+ String[] s = new String[solr.length];
+ for (int i = 0; i < solr.length; i++) {
+ s[i] = solr[i].getUrl();
+ }
+ ModifiableSolrParams params = new ModifiableSolrParams();
+ params.set(HttpClientUtil.PROP_CONNECTION_TIMEOUT, 250);
+ params.set(HttpClientUtil.PROP_SO_TIMEOUT, 250);
+ HttpClient myHttpClient = HttpClientUtil.createClient(params);
+
+ LBHttpSolrClient client = new LBHttpSolrClient(myHttpClient, s);
+ client.setAliveCheckInterval(500);
+
+ // Kill a server and test again
+ solr[1].jetty.stop();
+ solr[1].jetty = null;
+
+ // query the servers
+ for (String value : s)
+ client.query(new SolrQuery("*:*"));
+
+ // Start the killed server once again
+ solr[1].startJetty();
+ // Wait for the alive check to complete
+ waitForServer(30000, client, 3, "solr1");
+ }
+
+ // wait maximum ms for serverName to come back up
+ private void waitForServer(int maximum, LBHttpSolrClient client, int nServers, String serverName) throws Exception {
+ long endTime = System.currentTimeMillis() + maximum;
+ while (System.currentTimeMillis() < endTime) {
+ QueryResponse resp;
+ try {
+ resp = client.query(new SolrQuery("*:*"));
+ } catch (Exception e) {
+ log.warn("", e);
+ continue;
+ }
+ String name = resp.getResults().get(0).getFieldValue("name").toString();
+ if (name.equals(serverName))
+ return;
+ }
+ }
+
+ private class SolrInstance {
+ String name;
+ File homeDir;
+ File dataDir;
+ File confDir;
+ int port;
+ JettySolrRunner jetty;
+
+ public SolrInstance(String name, File homeDir, int port) {
+ this.name = name;
+ this.homeDir = homeDir;
+ this.port = port;
+
+ dataDir = new File(homeDir + "/collection1", "data");
+ confDir = new File(homeDir + "/collection1", "conf");
+ }
+
+ public String getHomeDir() {
+ return homeDir.toString();
+ }
+
+ public String getUrl() {
+ return buildUrl(port, "/solr");
+ }
+
+ public String getSchemaFile() {
+ return "solrj/solr/collection1/conf/schema-replication1.xml";
+ }
+
+ public String getConfDir() {
+ return confDir.toString();
+ }
+
+ public String getDataDir() {
+ return dataDir.toString();
+ }
+
+ public String getSolrConfigFile() {
+ return "solrj/solr/collection1/conf/solrconfig-slave1.xml";
+ }
+
+ public String getSolrXmlFile() {
+ return "solrj/solr/solr.xml";
+ }
+
+
+ public void setUp() throws Exception {
+ homeDir.mkdirs();
+ dataDir.mkdirs();
+ confDir.mkdirs();
+
+ FileUtils.copyFile(SolrTestCaseJ4.getFile(getSolrXmlFile()), new File(homeDir, "solr.xml"));
+
+ File f = new File(confDir, "solrconfig.xml");
+ FileUtils.copyFile(SolrTestCaseJ4.getFile(getSolrConfigFile()), f);
+ f = new File(confDir, "schema.xml");
+ FileUtils.copyFile(SolrTestCaseJ4.getFile(getSchemaFile()), f);
+ }
+
+ public void tearDown() throws Exception {
+ if (jetty != null) jetty.stop();
+ IOUtils.rm(homeDir.toPath());
+ }
+
+ public void startJetty() throws Exception {
+ jetty = new JettySolrRunner(getHomeDir(), "/solr", port, "bad_solrconfig.xml", null, true, null, sslConfig);
+ jetty.setDataDir(getDataDir());
+ jetty.start();
+ int newPort = jetty.getLocalPort();
+ if (port != 0 && newPort != port) {
+ fail("TESTING FAILURE: could not grab requested port.");
+ }
+ this.port = newPort;
+// System.out.println("waiting.........");
+// Thread.sleep(5000);
+ }
+ }
+}
Modified: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTestCase.java?rev=1648697&r1=1648696&r2=1648697&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTestCase.java (original)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTestCase.java Wed Dec 31 14:05:48 2014
@@ -20,7 +20,7 @@ package org.apache.solr.client.solrj.emb
import java.io.File;
import org.apache.solr.SolrTestCaseJ4;
-import org.apache.solr.client.solrj.SolrServer;
+import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.core.CoreContainer;
import org.junit.After;
import org.junit.Before;
@@ -79,15 +79,15 @@ public abstract class AbstractEmbeddedSo
}
- protected SolrServer getSolrCore0() {
+ protected SolrClient getSolrCore0() {
return getSolrCore("core0");
}
- protected SolrServer getSolrCore1() {
+ protected SolrClient getSolrCore1() {
return getSolrCore("core1");
}
- protected SolrServer getSolrCore(String name) {
+ protected SolrClient getSolrCore(String name) {
return new EmbeddedSolrServer(cores, name);
}
Modified: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/MergeIndexesEmbeddedTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/MergeIndexesEmbeddedTest.java?rev=1648697&r1=1648696&r2=1648697&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/MergeIndexesEmbeddedTest.java (original)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/MergeIndexesEmbeddedTest.java Wed Dec 31 14:05:48 2014
@@ -18,7 +18,7 @@
package org.apache.solr.client.solrj.embedded;
import org.apache.solr.client.solrj.MergeIndexesExampleTestBase;
-import org.apache.solr.client.solrj.SolrServer;
+import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.core.SolrCore;
/**
@@ -37,22 +37,22 @@ public class MergeIndexesEmbeddedTest ex
}
@Override
- protected SolrServer getSolrCore0() {
+ protected SolrClient getSolrCore0() {
return new EmbeddedSolrServer(cores, "core0");
}
@Override
- protected SolrServer getSolrCore1() {
+ protected SolrClient getSolrCore1() {
return new EmbeddedSolrServer(cores, "core1");
}
@Override
- protected SolrServer getSolrCore(String name) {
+ protected SolrClient getSolrCore(String name) {
return new EmbeddedSolrServer(cores, name);
}
@Override
- protected SolrServer getSolrAdmin() {
+ protected SolrClient getSolrAdmin() {
return new EmbeddedSolrServer(cores, "core0");
}