You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2010/10/18 18:32:02 UTC

svn commit: r1023893 - in /lucene/dev/trunk/solr/src: common/org/apache/solr/common/cloud/ java/org/apache/solr/core/ java/org/apache/solr/util/ test/org/apache/solr/ test/org/apache/solr/cloud/ test/org/apache/solr/core/

Author: markrmiller
Date: Mon Oct 18 16:32:01 2010
New Revision: 1023893

URL: http://svn.apache.org/viewvc?rev=1023893&view=rev
Log:
SOLR-2170:  BasicZkTest instantiates extra CoreContainer

Modified:
    lucene/dev/trunk/solr/src/common/org/apache/solr/common/cloud/CloudState.java
    lucene/dev/trunk/solr/src/java/org/apache/solr/core/CoreContainer.java
    lucene/dev/trunk/solr/src/java/org/apache/solr/util/TestHarness.java
    lucene/dev/trunk/solr/src/test/org/apache/solr/SolrTestCaseJ4.java
    lucene/dev/trunk/solr/src/test/org/apache/solr/cloud/AbstractZkTestCase.java
    lucene/dev/trunk/solr/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java
    lucene/dev/trunk/solr/src/test/org/apache/solr/cloud/BasicZkTest.java
    lucene/dev/trunk/solr/src/test/org/apache/solr/cloud/CloudStateUpdateTest.java
    lucene/dev/trunk/solr/src/test/org/apache/solr/cloud/ZkNodePropsTest.java
    lucene/dev/trunk/solr/src/test/org/apache/solr/core/TestJmxIntegration.java

Modified: lucene/dev/trunk/solr/src/common/org/apache/solr/common/cloud/CloudState.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/common/org/apache/solr/common/cloud/CloudState.java?rev=1023893&r1=1023892&r2=1023893&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/common/org/apache/solr/common/cloud/CloudState.java (original)
+++ lucene/dev/trunk/solr/src/common/org/apache/solr/common/cloud/CloudState.java Mon Oct 18 16:32:01 2010
@@ -25,7 +25,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.solr.common.SolrException;
 import org.apache.zookeeper.KeeperException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -140,5 +139,12 @@ public class CloudState {
 
     return liveNodesSet;
   }
+  
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("live nodes:" + liveNodes);
+    sb.append(" collections:" + collectionStates);
+    return sb.toString();
+  }
 
 }

Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/core/CoreContainer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/core/CoreContainer.java?rev=1023893&r1=1023892&r2=1023893&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/core/CoreContainer.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/core/CoreContainer.java Mon Oct 18 16:32:01 2010
@@ -80,7 +80,7 @@ public class CoreContainer 
   protected String solrHome;
   @Deprecated
   protected String solrConfigFilenameOverride;
-  private String defaultCoreName = "";
+  protected String defaultCoreName = "";
   private ZkController zkController;
   private SolrZkServer zkServer;
 
@@ -121,7 +121,7 @@ public class CoreContainer 
     this.solrHome = solrHome;
   }
 
-  private void initZooKeeper(String zkHost, int zkClientTimeout) {
+  protected void initZooKeeper(String zkHost, int zkClientTimeout) {
     // if zkHost sys property is not set, we are not using ZooKeeper
     String zookeeperHost;
     if(zkHost == null) {

Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/util/TestHarness.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/util/TestHarness.java?rev=1023893&r1=1023892&r2=1023893&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/util/TestHarness.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/util/TestHarness.java Mon Oct 18 16:32:01 2010
@@ -175,12 +175,21 @@ public class TestHarness {
     }
     @Override
     public CoreContainer initialize() {
-      CoreContainer container = new CoreContainer(new SolrResourceLoader(SolrResourceLoader.locateSolrHome()));
+      CoreContainer container = new CoreContainer(new SolrResourceLoader(SolrResourceLoader.locateSolrHome())) {
+        {
+          hostPort = System.getProperty("hostPort");
+          hostContext = "solr";
+          defaultCoreName = "collection1";
+          initZooKeeper(System.getProperty("zkHost"), 10000);
+        }
+      };
+      
       CoreDescriptor dcore = new CoreDescriptor(container, coreName, solrConfig.getResourceLoader().getInstanceDir());
       dcore.setConfigName(solrConfig.getResourceName());
       dcore.setSchemaName(indexSchema.getResourceName());
-      SolrCore core = new SolrCore( null, dataDirectory, solrConfig, indexSchema, dcore);
+      SolrCore core = new SolrCore("collection1", dataDirectory, solrConfig, indexSchema, dcore);
       container.register(coreName, core, false);
+
       return container;
     }
   }

Modified: lucene/dev/trunk/solr/src/test/org/apache/solr/SolrTestCaseJ4.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/test/org/apache/solr/SolrTestCaseJ4.java?rev=1023893&r1=1023892&r2=1023893&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/test/org/apache/solr/SolrTestCaseJ4.java (original)
+++ lucene/dev/trunk/solr/src/test/org/apache/solr/SolrTestCaseJ4.java Mon Oct 18 16:32:01 2010
@@ -219,8 +219,9 @@ public abstract class SolrTestCaseJ4 ext
     if (factoryProp == null) {
       System.setProperty("solr.directoryFactory","solr.RAMDirectoryFactory");
     }
-
-    createTempDir();
+    if (dataDir == null) {
+      createTempDir();
+    }
 
     // other  methods like starting a jetty instance need these too
     System.setProperty("solr.test.sys.prop1", "propone");

Modified: lucene/dev/trunk/solr/src/test/org/apache/solr/cloud/AbstractZkTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/test/org/apache/solr/cloud/AbstractZkTestCase.java?rev=1023893&r1=1023892&r2=1023893&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/test/org/apache/solr/cloud/AbstractZkTestCase.java (original)
+++ lucene/dev/trunk/solr/src/test/org/apache/solr/cloud/AbstractZkTestCase.java Mon Oct 18 16:32:01 2010
@@ -18,14 +18,14 @@ package org.apache.solr.cloud;
  */
 
 import java.io.File;
+import java.io.IOException;
 
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.common.cloud.SolrZkClient;
 import org.apache.solr.common.cloud.ZkNodeProps;
-import org.apache.solr.core.CoreContainer;
 import org.apache.solr.core.SolrConfig;
-import org.apache.solr.util.TestHarness;
 import org.apache.zookeeper.CreateMode;
+import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -46,51 +46,22 @@ public abstract class AbstractZkTestCase
 
   protected static String zkDir;
 
-  public AbstractZkTestCase() {
-
-  }
 
   @BeforeClass
   public static void azt_beforeClass() throws Exception {
-  }
-  
-  @Override
-  public void setUp() throws Exception {
-    super.setUp();
-
-    if (h != null) {
-      log.warn("HACK: closing previous test harness");     
-      h.close();
-      h=null;
-    }
-
+    createTempDir();
     zkDir = dataDir.getAbsolutePath() + File.separator
         + "zookeeper/server1/data";
     zkServer = new ZkTestServer(zkDir);
     zkServer.run();
-    System.setProperty("zkHost", zkServer.getZkAddress());
-    buildZooKeeper(zkServer.getZkHost(), zkServer.getZkAddress(),
-        getSolrConfigFile(), getSchemaFile());
-    
-    log.info("####SETUP_START " + getName());
-
-    dataDir.mkdirs();
-    
-    // set some system properties for use by tests
-    System.setProperty("solr.test.sys.prop1", "propone");
-    System.setProperty("solr.test.sys.prop2", "proptwo");
     
-    CoreContainer.Initializer init = new CoreContainer.Initializer() {
-      {
-        this.dataDir = AbstractZkTestCase.dataDir.getAbsolutePath();
-      }
-    };
-
-    h = new TestHarness("", init);
-    lrf = h.getRequestFactory("standard", 0, 20, "version", "2.2");
+    System.setProperty("zkHost", zkServer.getZkAddress());
+    System.setProperty("hostPort", "0000");
     
-    log.info("####SETUP_END " + getName());
+    buildZooKeeper(zkServer.getZkHost(), zkServer.getZkAddress(),
+        "solrconfig.xml", "schema.xml");
     
+    initCore("solrconfig.xml", "schema.xml");
   }
 
   // static to share with distrib test
@@ -131,15 +102,20 @@ public abstract class AbstractZkTestCase
     if (DEBUG) {
       printLayout(zkServer.getZkHost());
     }
+
+    SolrConfig.severeErrors.clear();
+    super.tearDown();
+  }
+  
+  @AfterClass
+  public static void azt_afterClass() throws IOException {
     zkServer.shutdown();
     System.clearProperty("zkHost");
     System.clearProperty("solr.test.sys.prop1");
     System.clearProperty("solr.test.sys.prop2");
-    SolrConfig.severeErrors.clear();
-    super.tearDown();
   }
 
-  private void printLayout(String zkHost) throws Exception {
+  protected void printLayout(String zkHost) throws Exception {
     SolrZkClient zkClient = new SolrZkClient(zkHost, AbstractZkTestCase.TIMEOUT);
     zkClient.printLayoutToStdOut();
     zkClient.close();

Modified: lucene/dev/trunk/solr/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java?rev=1023893&r1=1023892&r2=1023893&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java (original)
+++ lucene/dev/trunk/solr/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java Mon Oct 18 16:32:01 2010
@@ -24,7 +24,6 @@ import org.apache.solr.client.solrj.impl
 import org.apache.solr.client.solrj.response.QueryResponse;
 import org.apache.solr.common.params.CommonParams;
 import org.apache.solr.common.params.ModifiableSolrParams;
-import org.apache.solr.core.SolrConfig;
 import org.junit.BeforeClass;
 
 /**
@@ -279,5 +278,6 @@ public class BasicDistributedZkTest exte
   public void tearDown() throws Exception {
     super.tearDown();
     System.clearProperty("CLOUD_UPDATE_DELAY");
+    System.clearProperty("zkHost");
   }
 }

Modified: lucene/dev/trunk/solr/src/test/org/apache/solr/cloud/BasicZkTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/test/org/apache/solr/cloud/BasicZkTest.java?rev=1023893&r1=1023892&r2=1023893&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/test/org/apache/solr/cloud/BasicZkTest.java (original)
+++ lucene/dev/trunk/solr/src/test/org/apache/solr/cloud/BasicZkTest.java Mon Oct 18 16:32:01 2010
@@ -21,17 +21,18 @@ import org.apache.lucene.index.LogMergeP
 import org.apache.solr.core.SolrCore;
 import org.apache.solr.update.SolrIndexWriter;
 
+import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
-import static org.junit.Assert.*;
 
 /**
  *
  */
 public class BasicZkTest extends AbstractZkTestCase {
+  
   @BeforeClass
-  public static void beforeClass() throws Exception {
-    initCore("solrconfig.xml", "schema.xml");
+  public static void beforeClass() {
+    System.setProperty("CLOUD_UPDATE_DELAY", "1");
   }
   
   @Test
@@ -99,13 +100,17 @@ public class BasicZkTest extends Abstrac
     Thread.sleep(300);
     
     // try a reconnect from disconnect
-    
     zkServer = new ZkTestServer(zkDir);
     zkServer.run();
     
-    // ensure zk still thinks node is up
-    assertTrue(zkController.getCloudState().liveNodesContain(zkController.getNodeName()));
+    Thread.sleep(300);
     
+    // ensure zk still thinks node is up
+    assertTrue(
+        zkController.getCloudState().getLiveNodes().toString(),
+        zkController.getCloudState().liveNodesContain(
+            zkController.getNodeName()));
+
     // test maxint
     assertQ(req("q", "id:[100 TO 110]", "rows", "2147483647"),
         "//*[@numFound='4']");
@@ -124,6 +129,10 @@ public class BasicZkTest extends Abstrac
     assertU(delQ("id:[100 TO 110]"));
     assertU(commit());
     assertQ(req("id:[100 TO 110]"), "//*[@numFound='0']");
-
+  }
+  
+  @AfterClass
+  public static void afterClass() {
+    System.clearProperty("CLOUD_UPDATE_DELAY");
   }
 }

Modified: lucene/dev/trunk/solr/src/test/org/apache/solr/cloud/CloudStateUpdateTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/test/org/apache/solr/cloud/CloudStateUpdateTest.java?rev=1023893&r1=1023892&r2=1023893&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/test/org/apache/solr/cloud/CloudStateUpdateTest.java (original)
+++ lucene/dev/trunk/solr/src/test/org/apache/solr/cloud/CloudStateUpdateTest.java Mon Oct 18 16:32:01 2010
@@ -27,18 +27,16 @@ import org.apache.solr.common.cloud.Slic
 import org.apache.solr.common.cloud.SolrZkClient;
 import org.apache.solr.common.cloud.ZkNodeProps;
 import org.apache.solr.core.CoreContainer;
+import org.apache.solr.core.CoreContainer.Initializer;
 import org.apache.solr.core.CoreDescriptor;
 import org.apache.solr.core.SolrConfig;
 import org.apache.solr.core.SolrCore;
-import org.apache.solr.core.CoreContainer.Initializer;
 import org.apache.zookeeper.CreateMode;
 import org.junit.BeforeClass;
+import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.junit.Test;
-import static org.junit.Assert.*;
-
 /**
  * TODO: look at hostPort used below
  */

Modified: lucene/dev/trunk/solr/src/test/org/apache/solr/cloud/ZkNodePropsTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/test/org/apache/solr/cloud/ZkNodePropsTest.java?rev=1023893&r1=1023892&r2=1023893&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/test/org/apache/solr/cloud/ZkNodePropsTest.java (original)
+++ lucene/dev/trunk/solr/src/test/org/apache/solr/cloud/ZkNodePropsTest.java Mon Oct 18 16:32:01 2010
@@ -21,9 +21,7 @@ import java.io.IOException;
 
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.common.cloud.ZkNodeProps;
-
 import org.junit.Test;
-import static org.junit.Assert.*;
 
 
 public class ZkNodePropsTest extends SolrTestCaseJ4 {

Modified: lucene/dev/trunk/solr/src/test/org/apache/solr/core/TestJmxIntegration.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/test/org/apache/solr/core/TestJmxIntegration.java?rev=1023893&r1=1023892&r2=1023893&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/test/org/apache/solr/core/TestJmxIntegration.java (original)
+++ lucene/dev/trunk/solr/src/test/org/apache/solr/core/TestJmxIntegration.java Mon Oct 18 16:32:01 2010
@@ -95,7 +95,6 @@ public class TestJmxIntegration extends 
     }
     if (bean==null) throw new RuntimeException("searcher was never registered");
     ObjectName searcher = getObjectName("searcher", bean);
-
     MBeanServer mbeanServer = servers.get(0);
     log.info("Mbeans in server: " + mbeanServer.queryNames(null, null));
 
@@ -114,7 +113,14 @@ public class TestJmxIntegration extends 
     Hashtable<String, String> map = new Hashtable<String, String>();
     map.put("type", key);
     map.put("id", infoBean.getName());
-    return ObjectName.getInstance("solr", map);
+    String coreName = h.getCore().getName();
+    if (coreName.equals("")) {
+      String defaultCoreName = h.getCore().getCoreDescriptor().getCoreContainer().getDefaultCoreName();
+      if (!defaultCoreName.equals("")) {
+        coreName = defaultCoreName;
+      }
+    }
+    return ObjectName.getInstance(("solr" + (null != coreName ? "/" + coreName : "")), map);
   }
 }