You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by us...@apache.org on 2012/01/25 22:56:51 UTC

svn commit: r1235969 [6/9] - in /lucene/dev/branches/lucene2858: ./ dev-tools/eclipse/ dev-tools/idea/lucene/contrib/ dev-tools/maven/ lucene/ lucene/contrib/ lucene/contrib/sandbox/src/test/org/apache/lucene/sandbox/queries/regex/ lucene/src/java/org/...

Modified: lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java?rev=1235969&r1=1235968&r2=1235969&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java (original)
+++ lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java Wed Jan 25 21:56:44 2012
@@ -18,41 +18,26 @@ package org.apache.solr.cloud;
  */
 
 import java.io.File;
-import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import org.apache.solr.SolrTestCaseJ4;
-import org.apache.solr.common.cloud.CloudState;
-import org.apache.solr.common.cloud.Slice;
 import org.apache.solr.common.cloud.SolrZkClient;
 import org.apache.solr.common.cloud.ZkNodeProps;
 import org.apache.solr.common.cloud.ZkStateReader;
+import org.apache.solr.core.CoreDescriptor;
 import org.apache.solr.core.SolrConfig;
 import org.apache.zookeeper.CreateMode;
-import org.apache.zookeeper.KeeperException;
-
+import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
 public class ZkControllerTest extends SolrTestCaseJ4 {
 
-  private static final String TEST_NODE_NAME = "test_node_name";
-
-  private static final String URL3 = "http://localhost:3133/solr/core1";
-
-  private static final String URL2 = "http://localhost:3123/solr/core1";
-
-  private static final String SHARD3 = "localhost:3123_solr_core3";
-
-  private static final String SHARD2 = "localhost:3123_solr_core2";
-
-  private static final String SHARD1 = "localhost:3123_solr_core1";
-
   private static final String COLLECTION_NAME = "collection1";
 
-  static final int TIMEOUT = 10000;
-
-  private static final String URL1 = "http://localhost:3133/solr/core0";
+  static final int TIMEOUT = 1000;
 
   private static final boolean DEBUG = false;
   
@@ -62,79 +47,6 @@ public class ZkControllerTest extends So
   }
 
   @Test
-  public void testReadShards() throws Exception {
-    String zkDir = dataDir.getAbsolutePath() + File.separator
-        + "zookeeper/server1/data";
-    ZkTestServer server = null;
-    SolrZkClient zkClient = null;
-    ZkController zkController = null;
-    try {
-      server = new ZkTestServer(zkDir);
-      server.run();
-      AbstractZkTestCase.tryCleanSolrZkNode(server.getZkHost());
-      AbstractZkTestCase.makeSolrZkNode(server.getZkHost());
-
-      zkClient = new SolrZkClient(server.getZkAddress(), TIMEOUT);
-      String shardsPath = "/collections/collection1/shards/shardid1";
-      zkClient.makePath(shardsPath);
-
-      addShardToZk(zkClient, shardsPath, SHARD1, URL1);
-      addShardToZk(zkClient, shardsPath, SHARD2, URL2);
-      addShardToZk(zkClient, shardsPath, SHARD3, URL3);
-
-      if (DEBUG) {
-        zkClient.printLayoutToStdOut();
-      }
-
-      zkController = new ZkController(server.getZkAddress(),
-          TIMEOUT, 1000, "localhost", "8983", "solr");
- 
-      zkController.getZkStateReader().updateCloudState(true);
-      CloudState cloudInfo = zkController.getCloudState();
-      Map<String,Slice> slices = cloudInfo.getSlices("collection1");
-      assertNotNull(slices);
-
-      for (Slice slice : slices.values()) {
-        Map<String,ZkNodeProps> shards = slice.getShards();
-        if (DEBUG) {
-          for (String shardName : shards.keySet()) {
-            ZkNodeProps props = shards.get(shardName);
-            System.out.println("shard:" + shardName);
-            System.out.println("props:" + props.toString());
-          }
-        }
-        assertNotNull(shards.get(SHARD1));
-        assertNotNull(shards.get(SHARD2));
-        assertNotNull(shards.get(SHARD3));
-
-        ZkNodeProps props = shards.get(SHARD1);
-        assertEquals(URL1, props.get(ZkStateReader.URL_PROP));
-        assertEquals(TEST_NODE_NAME, props.get(ZkStateReader.NODE_NAME));
-
-        props = shards.get(SHARD2);
-        assertEquals(URL2, props.get(ZkStateReader.URL_PROP));
-        assertEquals(TEST_NODE_NAME, props.get(ZkStateReader.NODE_NAME));
-
-        props = shards.get(SHARD3);
-        assertEquals(URL3, props.get(ZkStateReader.URL_PROP));
-        assertEquals(TEST_NODE_NAME, props.get(ZkStateReader.NODE_NAME));
-
-      }
-
-    } finally {
-      if (zkClient != null) {
-        zkClient.close();
-      }
-      if (zkController != null) {
-        zkController.close();
-      }
-      if (server != null) {
-        server.shutdown();
-      }
-    }
-  }
-
-  @Test
   public void testReadConfigName() throws Exception {
     String zkDir = dataDir.getAbsolutePath() + File.separator
         + "zookeeper/server1/data";
@@ -148,18 +60,28 @@ public class ZkControllerTest extends So
       SolrZkClient zkClient = new SolrZkClient(server.getZkAddress(), TIMEOUT);
       String actualConfigName = "firstConfig";
 
-      zkClient.makePath(ZkController.CONFIGS_ZKNODE + "/" + actualConfigName);
+      zkClient.makePath(ZkController.CONFIGS_ZKNODE + "/" + actualConfigName, true);
       
-      ZkNodeProps props = new ZkNodeProps();
+      Map<String,String> props = new HashMap<String,String>();
       props.put("configName", actualConfigName);
-      zkClient.makePath(ZkStateReader.COLLECTIONS_ZKNODE + "/" + COLLECTION_NAME , props.store(), CreateMode.PERSISTENT);
+      ZkNodeProps zkProps = new ZkNodeProps(props);
+      zkClient.makePath(ZkStateReader.COLLECTIONS_ZKNODE + "/"
+          + COLLECTION_NAME, ZkStateReader.toJSON(zkProps),
+          CreateMode.PERSISTENT, true);
 
       if (DEBUG) {
         zkClient.printLayoutToStdOut();
       }
       zkClient.close();
-      ZkController zkController = new ZkController(server.getZkAddress(), TIMEOUT, TIMEOUT,
-          "localhost", "8983", "/solr");
+      ZkController zkController = new ZkController(null, server.getZkAddress(), TIMEOUT, 10000,
+          "localhost", "8983", "solr", new CurrentCoreDescriptorProvider() {
+            
+            @Override
+            public List<CoreDescriptor> getCurrentDescriptors() {
+              // do nothing
+              return null;
+            }
+          });
       try {
         String configName = zkController.readConfigName(COLLECTION_NAME);
         assertEquals(configName, actualConfigName);
@@ -185,11 +107,22 @@ public class ZkControllerTest extends So
 
       AbstractZkTestCase.makeSolrZkNode(server.getZkHost());
 
-      zkController = new ZkController(server.getZkAddress(),
-          TIMEOUT, 10000, "localhost", "8983", "/solr");
+      zkController = new ZkController(null, server.getZkAddress(),
+          TIMEOUT, 10000, "localhost", "8983", "solr", new CurrentCoreDescriptorProvider() {
+            
+            @Override
+            public List<CoreDescriptor> getCurrentDescriptors() {
+              // do nothing
+              return null;
+            }
+          });
 
       zkController.uploadToZK(getFile("solr/conf"),
           ZkController.CONFIGS_ZKNODE + "/config1");
+      
+      // uploading again should overwrite, not error...
+      zkController.uploadToZK(getFile("solr/conf"),
+          ZkController.CONFIGS_ZKNODE + "/config1");
 
       if (DEBUG) {
         zkController.printLayoutToStdOut();
@@ -203,22 +136,15 @@ public class ZkControllerTest extends So
     }
 
   }
-
-  private void addShardToZk(SolrZkClient zkClient, String shardsPath,
-      String zkNodeName, String url) throws IOException,
-      KeeperException, InterruptedException {
-
-    ZkNodeProps props = new ZkNodeProps();
-    props.put(ZkStateReader.URL_PROP, url);
-    props.put(ZkStateReader.NODE_NAME, TEST_NODE_NAME);
-    byte[] bytes = props.store();
-
-    zkClient
-        .create(shardsPath + "/" + zkNodeName, bytes, CreateMode.PERSISTENT);
-  }
   
   @Override
   public void tearDown() throws Exception {
     super.tearDown();
   }
+  
+  @AfterClass
+  public static void afterClass() throws InterruptedException {
+    // wait just a bit for any zk client threads to outlast timeout
+    Thread.sleep(2000);
+  }
 }

Modified: lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/cloud/ZkNodePropsTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/cloud/ZkNodePropsTest.java?rev=1235969&r1=1235968&r2=1235969&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/cloud/ZkNodePropsTest.java (original)
+++ lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/cloud/ZkNodePropsTest.java Wed Jan 25 21:56:44 2012
@@ -18,27 +18,30 @@ package org.apache.solr.cloud;
  */
 
 import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
 
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.common.cloud.ZkNodeProps;
+import org.apache.solr.common.cloud.ZkStateReader;
 import org.junit.Test;
 
-
 public class ZkNodePropsTest extends SolrTestCaseJ4 {
   @Test
   public void testBasic() throws IOException {
-
-    ZkNodeProps props = new ZkNodeProps();
+    
+    Map<String,String> props = new HashMap<String,String>();
     props.put("prop1", "value1");
     props.put("prop2", "value2");
     props.put("prop3", "value3");
     props.put("prop4", "value4");
     props.put("prop5", "value5");
     props.put("prop6", "value6");
-    byte[] bytes = props.store();
     
-    ZkNodeProps props2 = new ZkNodeProps();
-    props2.load(bytes);
+    ZkNodeProps zkProps = new ZkNodeProps(props);
+    byte[] bytes = ZkStateReader.toJSON(zkProps);
+    
+    ZkNodeProps props2 = ZkNodeProps.load(bytes);
     assertEquals("value1", props2.get("prop1"));
     assertEquals("value2", props2.get("prop2"));
     assertEquals("value3", props2.get("prop3"));

Modified: lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/cloud/ZkSolrClientTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/cloud/ZkSolrClientTest.java?rev=1235969&r1=1235968&r2=1235969&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/cloud/ZkSolrClientTest.java (original)
+++ lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/cloud/ZkSolrClientTest.java Wed Jan 25 21:56:44 2012
@@ -28,6 +28,7 @@ import org.apache.solr.util.AbstractSolr
 import org.apache.zookeeper.KeeperException;
 import org.apache.zookeeper.WatchedEvent;
 import org.apache.zookeeper.Watcher;
+import org.junit.AfterClass;
 
 public class ZkSolrClientTest extends AbstractSolrTestCase {
   private static final boolean DEBUG = false;
@@ -59,7 +60,7 @@ public class ZkSolrClientTest extends Ab
     SolrZkClient zkClient = new SolrZkClient(server.getZkHost(),
         AbstractZkTestCase.TIMEOUT);
 
-    assertTrue(zkClient.exists("/solr"));
+    assertTrue(zkClient.exists("/solr", true));
 
     zkClient.close();
     server.shutdown();
@@ -78,9 +79,9 @@ public class ZkSolrClientTest extends Ab
 
       zkClient = new SolrZkClient(server.getZkAddress(), AbstractZkTestCase.TIMEOUT);
       String shardsPath = "/collections/collection1/shards";
-      zkClient.makePath(shardsPath);
+      zkClient.makePath(shardsPath, false, true);
 
-      zkClient.makePath("collections/collection1");
+      zkClient.makePath("collections/collection1", false, true);
       int zkServerPort = server.getPort();
       // this tests disconnect state
       server.shutdown();
@@ -89,7 +90,7 @@ public class ZkSolrClientTest extends Ab
 
 
       try {
-        zkClient.makePath("collections/collection2");
+        zkClient.makePath("collections/collection2", false);
         TestCase.fail("Server should be down here");
       } catch (KeeperException.ConnectionLossException e) {
 
@@ -104,18 +105,18 @@ public class ZkSolrClientTest extends Ab
       Thread.sleep(600);
 
       try {
-        zkClient.makePath("collections/collection3");
+        zkClient.makePath("collections/collection3", true);
       } catch (KeeperException.ConnectionLossException e) {
         Thread.sleep(5000); // try again in a bit
-        zkClient.makePath("collections/collection3");
+        zkClient.makePath("collections/collection3", true);
       }
 
       if (DEBUG) {
         zkClient.printLayoutToStdOut();
       }
 
-      assertNotNull(zkClient.exists("/collections/collection3", null));
-      assertNotNull(zkClient.exists("/collections/collection1", null));
+      assertNotNull(zkClient.exists("/collections/collection3", null, true));
+      assertNotNull(zkClient.exists("/collections/collection1", null, true));
       
       // simulate session expiration
       
@@ -132,7 +133,7 @@ public class ZkSolrClientTest extends Ab
       
       for (int i = 0; i < 8; i++) {
         try {
-          zkClient.makePath("collections/collection4");
+          zkClient.makePath("collections/collection4", true);
           break;
         } catch (KeeperException.SessionExpiredException e) {
 
@@ -146,7 +147,7 @@ public class ZkSolrClientTest extends Ab
         zkClient.printLayoutToStdOut();
       }
 
-      assertNotNull("Node does not exist, but it should", zkClient.exists("/collections/collection4", null));
+      assertNotNull("Node does not exist, but it should", zkClient.exists("/collections/collection4", null, true));
 
     } finally {
 
@@ -170,7 +171,7 @@ public class ZkSolrClientTest extends Ab
     AbstractZkTestCase.makeSolrZkNode(server.getZkHost());
     final SolrZkClient zkClient = new SolrZkClient(server.getZkAddress(), AbstractZkTestCase.TIMEOUT);
     try {
-      zkClient.makePath("/collections");
+      zkClient.makePath("/collections", true);
 
       zkClient.getChildren("/collections", new Watcher() {
 
@@ -181,22 +182,22 @@ public class ZkSolrClientTest extends Ab
           cnt.incrementAndGet();
           // remake watch
           try {
-            zkClient.getChildren("/collections", this);
+            zkClient.getChildren("/collections", this, true);
           } catch (KeeperException e) {
             throw new RuntimeException(e);
           } catch (InterruptedException e) {
             throw new RuntimeException(e);
           }
         }
-      });
+      }, true);
 
-      zkClient.makePath("/collections/collection99/shards");
+      zkClient.makePath("/collections/collection99/shards", true);
 
-      zkClient.makePath("collections/collection99/config=collection1");
+      zkClient.makePath("collections/collection99/config=collection1", true);
 
-      zkClient.makePath("collections/collection99/config=collection3");
+      zkClient.makePath("collections/collection99/config=collection3", true);
       
-      zkClient.makePath("/collections/collection97/shards");
+      zkClient.makePath("/collections/collection97/shards", true);
 
       if (DEBUG) {
         zkClient.printLayoutToStdOut();
@@ -209,6 +210,10 @@ public class ZkSolrClientTest extends Ab
         Thread.sleep(4000); // wait a bit more
       }
       
+      if (cnt.intValue() < 2) {
+        Thread.sleep(4000); // wait a bit more
+      }
+      
       assertEquals(2, cnt.intValue());
 
     } finally {
@@ -237,4 +242,9 @@ public class ZkSolrClientTest extends Ab
     super.tearDown();
   }
   
+  @AfterClass
+  public static void afterClass() throws InterruptedException {
+    // wait just a bit for any zk client threads to outlast timeout
+    Thread.sleep(2000);
+  }
 }

Modified: lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/cloud/ZkTestServer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/cloud/ZkTestServer.java?rev=1235969&r1=1235968&r2=1235969&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/cloud/ZkTestServer.java (original)
+++ lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/cloud/ZkTestServer.java Wed Jan 25 21:56:44 2012
@@ -31,18 +31,22 @@ import java.util.List;
 
 import javax.management.JMException;
 
-import org.apache.solr.SolrTestCaseJ4;
 import org.apache.zookeeper.jmx.ManagedUtil;
 import org.apache.zookeeper.server.NIOServerCnxn;
 import org.apache.zookeeper.server.ServerConfig;
+import org.apache.zookeeper.server.SessionTracker.Session;
 import org.apache.zookeeper.server.ZKDatabase;
 import org.apache.zookeeper.server.ZooKeeperServer;
-import org.apache.zookeeper.server.SessionTracker.Session;
 import org.apache.zookeeper.server.persistence.FileTxnSnapLog;
 import org.apache.zookeeper.server.quorum.QuorumPeerConfig.ConfigException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class ZkTestServer {
+  public static final int TICK_TIME = 3000;
 
+  private static Logger log = LoggerFactory.getLogger(ZkTestServer.class);
+  
   protected final ZKServerMain zkServer = new ZKServerMain();
 
   private String zkDir;
@@ -50,6 +54,8 @@ public class ZkTestServer {
   private int clientPort;
 
   private Thread zooThread;
+  
+  private int theTickTime = TICK_TIME;
 
   class ZKServerMain {
 
@@ -76,7 +82,6 @@ public class ZkTestServer {
 
     /**
      * Run from a ServerConfig.
-     * 
      * @param config ServerConfig to use.
      * @throws IOException
      */
@@ -125,7 +130,12 @@ public class ZkTestServer {
       if (cnxnFactory == null) {
         throw new IllegalStateException("A port has not yet been selected");
       }
-      int port = cnxnFactory.getLocalPort();
+      int port;
+      try {
+        port = cnxnFactory.getLocalPort();
+      } catch (NullPointerException e) {
+        throw new IllegalStateException("A port has not yet been selected");
+      }
       if (port == 0) {
         throw new IllegalStateException("A port has not yet been selected");
       }
@@ -163,10 +173,15 @@ public class ZkTestServer {
       @Override
       public int getTimeout() {
         return 4000;
+      }
+      @Override
+      public boolean isClosing() {
+        return false;
       }});
   }
 
   public void run() throws InterruptedException {
+    log.info("STARTING ZK TEST SERVER");
     // we don't call super.setUp
     zooThread = new Thread() {
       
@@ -178,7 +193,7 @@ public class ZkTestServer {
             setClientPort(ZkTestServer.this.clientPort);
             this.dataDir = zkDir;
             this.dataLogDir = zkDir;
-            this.tickTime = 1500;
+            this.tickTime = theTickTime;
           }
           
           public void setClientPort(int clientPort) {
@@ -220,7 +235,7 @@ public class ZkTestServer {
       } catch(IllegalStateException e) {
         
       }
-      if (cnt == 40) {
+      if (cnt == 100) {
         throw new RuntimeException("Could not get the port for ZooKeeper server");
       }
       cnt++;
@@ -229,13 +244,8 @@ public class ZkTestServer {
 
   @SuppressWarnings("deprecation")
   public void shutdown() throws IOException {
-    SolrTestCaseJ4.ignoreException("java.nio.channels.ClosedChannelException");
     // TODO: this can log an exception while trying to unregister a JMX MBean
-    try {
-      zkServer.shutdown();
-    } finally {
-      SolrTestCaseJ4.resetExceptionIgnores();
-    }
+    zkServer.shutdown();
   }
  
   
@@ -324,4 +334,12 @@ public class ZkTestServer {
     }
     return alist;
   }
+
+  public int getTheTickTime() {
+    return theTickTime;
+  }
+
+  public void setTheTickTime(int theTickTime) {
+    this.theTickTime = theTickTime;
+  }
 }

Modified: lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/core/TestConfig.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/core/TestConfig.java?rev=1235969&r1=1235968&r2=1235969&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/core/TestConfig.java (original)
+++ lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/core/TestConfig.java Wed Jan 25 21:56:44 2012
@@ -116,7 +116,7 @@ public class TestConfig extends SolrTest
 
   @Test
   public void testTermIndexInterval() throws Exception {
-    IndexWriter writer = ((DirectUpdateHandler2)h.getCore().getUpdateHandler()).getIndexWriterProvider().getIndexWriter(h.getCore());
+    IndexWriter writer = ((DirectUpdateHandler2)h.getCore().getUpdateHandler()).getSolrCoreState().getIndexWriter(h.getCore());
     int interval = writer.getConfig().getTermIndexInterval();
     assertEquals(256, interval);
   }

Modified: lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/core/TestLegacyMergeSchedulerPolicyConfig.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/core/TestLegacyMergeSchedulerPolicyConfig.java?rev=1235969&r1=1235968&r2=1235969&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/core/TestLegacyMergeSchedulerPolicyConfig.java (original)
+++ lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/core/TestLegacyMergeSchedulerPolicyConfig.java Wed Jan 25 21:56:44 2012
@@ -33,7 +33,7 @@ public class TestLegacyMergeSchedulerPol
 
   @Test
   public void testLegacy() throws Exception {
-    IndexWriter writer = ((DirectUpdateHandler2)h.getCore().getUpdateHandler()).getIndexWriterProvider().getIndexWriter(h.getCore());
+    IndexWriter writer = ((DirectUpdateHandler2)h.getCore().getUpdateHandler()).getSolrCoreState().getIndexWriter(h.getCore());
     assertTrue(writer.getConfig().getMergePolicy().getClass().getName().equals(LogDocMergePolicy.class.getName()));
     assertTrue(writer.getConfig().getMergeScheduler().getClass().getName().equals(SerialMergeScheduler.class.getName()));
   }

Modified: lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/core/TestPropInject.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/core/TestPropInject.java?rev=1235969&r1=1235968&r2=1235969&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/core/TestPropInject.java (original)
+++ lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/core/TestPropInject.java Wed Jan 25 21:56:44 2012
@@ -37,13 +37,13 @@ public class TestPropInject extends Abst
   }
 
   public void testMergePolicy() throws Exception {
-    IndexWriter writer = ((DirectUpdateHandler2)h.getCore().getUpdateHandler()).getIndexWriterProvider().getIndexWriter(h.getCore());
+    IndexWriter writer = ((DirectUpdateHandler2)h.getCore().getUpdateHandler()).getSolrCoreState().getIndexWriter(h.getCore());
     LogByteSizeMergePolicy mp = (LogByteSizeMergePolicy)writer.getConfig().getMergePolicy();
     assertEquals(64.0, mp.getMaxMergeMB(), 0);
   }
   
   public void testProps() throws Exception {
-    IndexWriter writer = ((DirectUpdateHandler2)h.getCore().getUpdateHandler()).getIndexWriterProvider().getIndexWriter(h.getCore());
+    IndexWriter writer = ((DirectUpdateHandler2)h.getCore().getUpdateHandler()).getSolrCoreState().getIndexWriter(h.getCore());
     ConcurrentMergeScheduler cms = (ConcurrentMergeScheduler)writer.getConfig().getMergeScheduler();
     assertEquals(2, cms.getMaxThreadCount());
   }

Modified: lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/core/TestPropInjectDefaults.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/core/TestPropInjectDefaults.java?rev=1235969&r1=1235968&r2=1235969&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/core/TestPropInjectDefaults.java (original)
+++ lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/core/TestPropInjectDefaults.java Wed Jan 25 21:56:44 2012
@@ -33,14 +33,14 @@ public class TestPropInjectDefaults exte
 
   @Test
   public void testMergePolicyDefaults() throws Exception {
-    IndexWriter writer = ((DirectUpdateHandler2)h.getCore().getUpdateHandler()).getIndexWriterProvider().getIndexWriter(h.getCore());
+    IndexWriter writer = ((DirectUpdateHandler2)h.getCore().getUpdateHandler()).getSolrCoreState().getIndexWriter(h.getCore());
     LogByteSizeMergePolicy mp = (LogByteSizeMergePolicy)writer.getConfig().getMergePolicy();
     assertEquals(32.0, mp.getMaxMergeMB(), 0);
   }
   
   @Test
   public void testPropsDefaults() throws Exception {
-    IndexWriter writer = ((DirectUpdateHandler2)h.getCore().getUpdateHandler()).getIndexWriterProvider().getIndexWriter(h.getCore());
+    IndexWriter writer = ((DirectUpdateHandler2)h.getCore().getUpdateHandler()).getSolrCoreState().getIndexWriter(h.getCore());
     ConcurrentMergeScheduler cms = (ConcurrentMergeScheduler)writer.getConfig().getMergeScheduler();
     assertEquals(4, cms.getMaxThreadCount());
   }

Modified: lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/handler/JsonLoaderTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/handler/JsonLoaderTest.java?rev=1235969&r1=1235968&r2=1235969&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/handler/JsonLoaderTest.java (original)
+++ lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/handler/JsonLoaderTest.java Wed Jan 25 21:56:44 2012
@@ -68,7 +68,9 @@ public class JsonLoaderTest extends Solr
       "'optimize': { 'waitSearcher':false },\n" +
       "\n" +
       "'delete': { 'id':'ID' },\n" +
+      "'delete': { 'id':'ID', 'commitWithin':'500' },\n" +
       "'delete': { 'query':'QUERY' },\n" +
+      "'delete': { 'query':'QUERY', 'commitWithin':'500' },\n" +
       "'rollback': {}\n" +
       "\n" +
       "}\n" +
@@ -113,14 +115,26 @@ public class JsonLoaderTest extends Solr
     
 
     // DELETE COMMANDS
-    assertEquals( 2, p.deleteCommands.size() );
+    assertEquals( 4, p.deleteCommands.size() );
     DeleteUpdateCommand delete = p.deleteCommands.get( 0 );
     assertEquals( delete.id, "ID" );
     assertEquals( delete.query, null );
+    assertEquals( delete.commitWithin, -1);
     
     delete = p.deleteCommands.get( 1 );
+    assertEquals( delete.id, "ID" );
+    assertEquals( delete.query, null );
+    assertEquals( delete.commitWithin, 500);
+    
+    delete = p.deleteCommands.get( 2 );
+    assertEquals( delete.id, null );
+    assertEquals( delete.query, "QUERY" );
+    assertEquals( delete.commitWithin, -1);
+    
+    delete = p.deleteCommands.get( 3 );
     assertEquals( delete.id, null );
     assertEquals( delete.query, "QUERY" );
+    assertEquals( delete.commitWithin, 500);
 
     // ROLLBACK COMMANDS
     assertEquals( 1, p.rollbackCommands.size() );

Modified: lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java?rev=1235969&r1=1235968&r2=1235969&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java (original)
+++ lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java Wed Jan 25 21:56:44 2012
@@ -119,10 +119,9 @@ public class TestReplicationHandler exte
   }
 
   private static JettySolrRunner createJetty(SolrInstance instance) throws Exception {
-    System.setProperty("solr.solr.home", instance.getHomeDir());
     System.setProperty("solr.data.dir", instance.getDataDir());
 
-    JettySolrRunner jetty = new JettySolrRunner("/solr", 0);
+    JettySolrRunner jetty = new JettySolrRunner(instance.getHomeDir(), "/solr", 0);
 
     jetty.start();
     return jetty;

Modified: lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/handler/XmlUpdateRequestHandlerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/handler/XmlUpdateRequestHandlerTest.java?rev=1235969&r1=1235968&r2=1235969&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/handler/XmlUpdateRequestHandlerTest.java (original)
+++ lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/handler/XmlUpdateRequestHandlerTest.java Wed Jan 25 21:56:44 2012
@@ -17,21 +17,27 @@
 package org.apache.solr.handler;
 
 import org.apache.solr.SolrTestCaseJ4;
-import java.io.StringReader;
-import java.util.Collection;
-
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLStreamReader;
-
+import org.apache.commons.lang.ObjectUtils;
 import org.apache.solr.common.SolrInputDocument;
 import org.apache.solr.common.util.ContentStreamBase;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.response.SolrQueryResponse;
 import org.apache.solr.update.AddUpdateCommand;
+import org.apache.solr.update.DeleteUpdateCommand;
 import org.apache.solr.update.processor.BufferingRequestProcessor;
+import org.apache.solr.update.processor.UpdateRequestProcessor;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
+import java.io.IOException;
+import java.io.StringReader;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.Queue;
+
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamReader;
+
 public class XmlUpdateRequestHandlerTest extends SolrTestCaseJ4 {
   private static XMLInputFactory inputFactory = XMLInputFactory.newInstance();
   protected static XmlUpdateRequestHandler handler;
@@ -102,5 +108,68 @@ public class XmlUpdateRequestHandlerTest
     assertEquals(false, add.overwrite);
     req.close();
   }
+  
+  @Test
+  public void testReadDelete() throws Exception {
+	    String xml =
+	      "<update>" +
+	      " <delete>" +
+	      "   <query>id:150</query>" +
+	      "   <id>150</id>" +
+	      "   <id>200</id>" +
+	      "   <query>id:200</query>" +
+	      " </delete>" +
+	      " <delete commitWithin=\"500\">" +
+	      "   <query>id:150</query>" +
+	      " </delete>" +
+	      " <delete>" +
+	      "   <id>150</id>" +
+	      " </delete>" +
+	      "</update>";
+	    
+	    MockUpdateRequestProcessor p = new MockUpdateRequestProcessor(null);
+	    p.expectDelete(null, "id:150", -1);
+	    p.expectDelete("150", null, -1);
+	    p.expectDelete("200", null, -1);
+	    p.expectDelete(null, "id:200", -1);
+	    p.expectDelete(null, "id:150", 500);
+	    p.expectDelete("150", null, -1);
+
+	    XMLLoader loader = new XMLLoader(p, inputFactory);
+	    loader.load(req(), new SolrQueryResponse(), new ContentStreamBase.StringStream(xml));
+	    
+	    p.assertNoCommandsPending();
+	  }
+	  
+	  private class MockUpdateRequestProcessor extends UpdateRequestProcessor {
+	    
+	    private Queue<DeleteUpdateCommand> deleteCommands = new LinkedList<DeleteUpdateCommand>();
+	    
+	    public MockUpdateRequestProcessor(UpdateRequestProcessor next) {
+	      super(next);
+	    }
+	    
+	    public void expectDelete(String id, String query, int commitWithin) {
+	      DeleteUpdateCommand cmd = new DeleteUpdateCommand(null);
+	      cmd.id = id;
+	      cmd.query = query;
+	      cmd.commitWithin = commitWithin;
+	      deleteCommands.add(cmd);
+	    }
+	    
+	    public void assertNoCommandsPending() {
+	      assertTrue(deleteCommands.isEmpty());
+	    }
+	    
+	    @Override
+	    public void processDelete(DeleteUpdateCommand cmd) throws IOException {
+	      DeleteUpdateCommand expected = deleteCommands.poll();
+	      assertNotNull("Unexpected delete command: [" + cmd + "]", expected);
+	      assertTrue("Expected [" + expected + "] but found [" + cmd + "]",
+	          ObjectUtils.equals(expected.id, cmd.id) &&
+	          ObjectUtils.equals(expected.query, cmd.query) &&
+	          expected.commitWithin==cmd.commitWithin);
+	    }
+	  }
 
 }

Modified: lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java?rev=1235969&r1=1235968&r2=1235969&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java (original)
+++ lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java Wed Jan 25 21:56:44 2012
@@ -67,12 +67,11 @@ public class TestBinaryField extends Luc
     out = new FileOutputStream(f);
     IOUtils.copy(loader.openResource(fname), out);
     out.close();
-    System.setProperty("solr.solr.home", homeDir.getAbsolutePath());
     System.setProperty("solr.data.dir", dataDir.getAbsolutePath());
     System.setProperty("solr.test.sys.prop1", "propone");
     System.setProperty("solr.test.sys.prop2", "proptwo");
 
-    jetty = new JettySolrRunner(context, 0);
+    jetty = new JettySolrRunner(homeDir.getAbsolutePath(), context, 0);
     jetty.start();
     port = jetty.getLocalPort();