You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by no...@apache.org on 2015/01/05 16:44:58 UTC

svn commit: r1649551 - in /lucene/dev/trunk/solr/core/src: java/org/apache/solr/core/RequestParams.java java/org/apache/solr/core/SolrResourceLoader.java test/org/apache/solr/core/TestSolrConfigHandler.java

Author: noble
Date: Mon Jan  5 15:44:57 2015
New Revision: 1649551

URL: http://svn.apache.org/r1649551
Log:
SOLR-6770 Added testcase for standalone mode and fixed a reload bug

Modified:
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/RequestParams.java
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java
    lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestSolrConfigHandler.java

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/RequestParams.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/RequestParams.java?rev=1649551&r1=1649550&r2=1649551&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/RequestParams.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/RequestParams.java Mon Jan  5 15:44:57 2015
@@ -135,9 +135,9 @@ public class RequestParams implements Ma
         throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, e);
       }
 
-    } else if(requestParams == null) {
+    } else  {
       Object[] o = getMapAndVersion(loader, RequestParams.RESOURCE);
-      requestParams = new RequestParams((Map) o[0],(Integer)o[1]);
+      requestParams = new RequestParams((Map) o[0], (Integer) o[1]);
     }
 
     return requestParams;

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java?rev=1649551&r1=1649550&r2=1649551&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java Mon Jan  5 15:44:57 2015
@@ -829,10 +829,10 @@ public class SolrResourceLoader implemen
 
   public static void persistConfLocally(SolrResourceLoader loader, String resourceName, byte[] content) {
     // Persist locally
-    File managedSchemaFile = new File(loader.getConfigDir(), resourceName);
+    File confFile = new File(loader.getConfigDir(), resourceName);
     OutputStreamWriter writer = null;
     try {
-      File parentDir = managedSchemaFile.getParentFile();
+      File parentDir = confFile.getParentFile();
       if ( ! parentDir.isDirectory()) {
         if ( ! parentDir.mkdirs()) {
           final String msg = "Can't create managed schema directory " + parentDir.getAbsolutePath();
@@ -840,19 +840,19 @@ public class SolrResourceLoader implemen
           throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, msg);
         }
       }
-      final FileOutputStream out = new FileOutputStream(managedSchemaFile);
+      final FileOutputStream out = new FileOutputStream(confFile);
       out.write(content);
-      log.info("Upgraded to managed schema at " + managedSchemaFile.getPath());
+      log.info("Written confile " + resourceName);
     } catch (IOException e) {
-      final String msg = "Error persisting managed schema " + managedSchemaFile;
+      final String msg = "Error persisting conf file " + resourceName;
       log.error(msg, e);
       throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, msg, e);
     } finally {
       org.apache.commons.io.IOUtils.closeQuietly(writer);
       try {
-        FileUtils.sync(managedSchemaFile);
+        FileUtils.sync(confFile);
       } catch (IOException e) {
-        final String msg = "Error syncing the managed schema file " + managedSchemaFile;
+        final String msg = "Error syncing conf file " + resourceName;
         log.error(msg, e);
       }
     }

Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestSolrConfigHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestSolrConfigHandler.java?rev=1649551&r1=1649550&r2=1649551&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestSolrConfigHandler.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestSolrConfigHandler.java Mon Jan  5 15:44:57 2015
@@ -23,6 +23,7 @@ import java.io.IOException;
 import java.io.StringReader;
 import java.nio.charset.StandardCharsets;
 import java.text.MessageFormat;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
@@ -36,6 +37,9 @@ import com.google.common.collect.Immutab
 import org.apache.commons.io.FileUtils;
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.client.solrj.impl.CloudSolrClient;
+import org.apache.solr.common.cloud.DocCollection;
+import org.apache.solr.common.cloud.Replica;
+import org.apache.solr.common.cloud.Slice;
 import org.apache.solr.common.cloud.ZkStateReader;
 import org.apache.solr.handler.TestSolrConfigHandlerConcurrent;
 import org.apache.solr.util.RestTestBase;
@@ -231,6 +235,208 @@ public class TestSolrConfigHandler exten
     assertTrue(MessageFormat.format("Could not get expected value  {0} for path {1} full output {2}", expected, jsonPath, new String(ZkStateReader.toJSON(m), StandardCharsets.UTF_8)), success);
   }
 
+  public void testReqParams() throws Exception{
+    RestTestHarness harness = restTestHarness;
+    String payload = " {\n" +
+        "  'set' : {'x': {" +
+        "                    'a':'A val',\n" +
+        "                    'b': 'B val'}\n" +
+        "             }\n" +
+        "  }";
+
+
+    TestSolrConfigHandler.runConfigCommand(harness,"/config/params?wt=json", payload);
+
+    TestSolrConfigHandler.testForResponseElement(
+        harness,
+        null,
+        "/config/params?wt=json",
+        null,
+        Arrays.asList("response", "params", "x", "a"),
+        "A val",
+        10);
+
+    TestSolrConfigHandler.testForResponseElement(
+        harness,
+        null,
+        "/config/params?wt=json",
+        null,
+        Arrays.asList("response", "params", "x", "b"),
+        "B val",
+        10);
+
+    payload = "{\n" +
+        "'create-requesthandler' : { 'name' : '/dump', 'class': 'org.apache.solr.handler.DumpRequestHandler' }\n" +
+        "}";
+
+    TestSolrConfigHandler.runConfigCommand(harness, "/config?wt=json", payload);
+
+    TestSolrConfigHandler.testForResponseElement(
+        harness,
+        null,
+        "/config/overlay?wt=json",
+        null,
+        Arrays.asList("overlay", "requestHandler", "/dump", "name"),
+        "/dump",
+        10);
+
+    TestSolrConfigHandler.testForResponseElement(harness,
+        null,
+        "/dump?wt=json&useParams=x",
+        null,
+        Arrays.asList("params", "a"),
+        "A val",
+        5);
+    TestSolrConfigHandler.testForResponseElement(harness,
+        null,
+        "/dump?wt=json&useParams=x&a=fomrequest",
+        null,
+        Arrays.asList("params", "a"),
+        "fomrequest",
+        5);
+
+    payload = "{\n" +
+        "'create-requesthandler' : { 'name' : '/dump1', 'class': 'org.apache.solr.handler.DumpRequestHandler', 'useParams':'x' }\n" +
+        "}";
+
+    TestSolrConfigHandler.runConfigCommand(harness,"/config?wt=json", payload);
+
+    TestSolrConfigHandler.testForResponseElement(harness,
+        null,
+        "/config/overlay?wt=json",
+        null,
+        Arrays.asList("overlay", "requestHandler", "/dump1", "name"),
+        "/dump1",
+        10);
+
+    TestSolrConfigHandler.testForResponseElement(
+        harness,
+        null,
+        "/dump1?wt=json",
+        null,
+        Arrays.asList("params", "a"),
+        "A val",
+        5);
+
+
+
+    payload = " {\n" +
+        "  'set' : {'y':{\n" +
+        "                'c':'CY val',\n" +
+        "                'b': 'BY val'}\n" +
+        "             }\n" +
+        "  }";
+
+
+    TestSolrConfigHandler.runConfigCommand(harness,"/config/params?wt=json", payload);
+
+    TestSolrConfigHandler.testForResponseElement(
+        harness,
+        null,
+        "/config/params?wt=json",
+        null,
+        Arrays.asList("response", "params", "y", "c"),
+        "CY val",
+        10);
+
+    TestSolrConfigHandler.testForResponseElement(harness,
+        null,
+        "/dump?wt=json&useParams=y",
+        null,
+        Arrays.asList("params", "c"),
+        "CY val",
+        5);
+
+
+    TestSolrConfigHandler.testForResponseElement(
+        harness,
+        null,
+        "/dump1?wt=json&useParams=y",
+        null,
+        Arrays.asList("params", "b"),
+        "BY val",
+        5);
+
+    TestSolrConfigHandler.testForResponseElement(
+        harness,
+        null,
+        "/dump1?wt=json&useParams=y",
+        null,
+        Arrays.asList("params", "a"),
+        null,
+        5);
+
+    payload = " {\n" +
+        "  'update' : {'y': {\n" +
+        "                'c':'CY val modified',\n" +
+        "                'e':'EY val',\n" +
+        "                'b': 'BY val'" +
+        "}\n" +
+        "             }\n" +
+        "  }";
+
+
+    TestSolrConfigHandler.runConfigCommand(harness,"/config/params?wt=json", payload);
+
+    TestSolrConfigHandler.testForResponseElement(
+        harness,
+        null,
+        "/config/params?wt=json",
+        null,
+        Arrays.asList("response", "params", "y", "c"),
+        "CY val modified",
+        10);
+
+    TestSolrConfigHandler.testForResponseElement(
+        harness,
+        null,
+        "/config/params?wt=json",
+        null,
+        Arrays.asList("response", "params", "y", "e"),
+        "EY val",
+        10);
+
+    payload = " {\n" +
+        "  'set' : {'y': {\n" +
+        "                'p':'P val',\n" +
+        "                'q': 'Q val'" +
+        "}\n" +
+        "             }\n" +
+        "  }";
+
+
+    TestSolrConfigHandler.runConfigCommand(harness,"/config/params?wt=json", payload);
+    TestSolrConfigHandler.testForResponseElement(
+        harness,
+        null,
+        "/config/params?wt=json",
+        null,
+        Arrays.asList("response", "params", "y", "p"),
+        "P val",
+        10);
+
+    TestSolrConfigHandler.testForResponseElement(
+        harness,
+        null,
+        "/config/params?wt=json",
+        null,
+        Arrays.asList("response", "params", "y", "c"),
+        null,
+        10);
+    payload = " {'delete' : 'y'}";
+    TestSolrConfigHandler.runConfigCommand(harness,"/config/params?wt=json", payload);
+    TestSolrConfigHandler.testForResponseElement(
+        harness,
+        null,
+        "/config/params?wt=json",
+        null,
+        Arrays.asList("response", "params", "y", "p"),
+        null,
+        10);
+
+
+  }
+
 
   public static Map getRespMap(String path, RestTestHarness restHarness) throws Exception {
     String response = restHarness.query(path);