You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by an...@apache.org on 2014/12/16 08:17:40 UTC
svn commit: r1645866 - in /lucene/dev/trunk/solr: README.txt
core/src/java/org/apache/solr/util/SimplePostTool.java
core/src/test/org/apache/solr/util/SimplePostToolTest.java
Author: anshum
Date: Tue Dec 16 07:17:39 2014
New Revision: 1645866
URL: http://svn.apache.org/r1645866
Log:
SOLR-6852: SimplePostTool no longer defaults to collection1, also there's no default update URL
Modified:
lucene/dev/trunk/solr/README.txt
lucene/dev/trunk/solr/core/src/java/org/apache/solr/util/SimplePostTool.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/util/SimplePostToolTest.java
Modified: lucene/dev/trunk/solr/README.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/README.txt?rev=1645866&r1=1645865&r2=1645866&view=diff
==============================================================================
--- lucene/dev/trunk/solr/README.txt (original)
+++ lucene/dev/trunk/solr/README.txt Tue Dec 16 07:17:39 2014
@@ -87,7 +87,7 @@ To add documents to the index, use the p
the example/exampledocs subdirectory (while Solr is running), for example:
cd example/exampledocs
- java -jar post.jar *.xml
+ java -jar -Dc=<collection_name>post.jar *.xml
Or: sh post.sh *.xml
For more information about Solr examples please read...
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/util/SimplePostTool.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/util/SimplePostTool.java?rev=1645866&r1=1645865&r2=1645866&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/util/SimplePostTool.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/util/SimplePostTool.java Tue Dec 16 07:17:39 2014
@@ -17,6 +17,19 @@ package org.apache.solr.util;
* limitations under the License.
*/
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
+
+import javax.xml.bind.DatatypeConverter;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.xpath.XPath;
+import javax.xml.xpath.XPathConstants;
+import javax.xml.xpath.XPathExpression;
+import javax.xml.xpath.XPathExpressionException;
+import javax.xml.xpath.XPathFactory;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -53,20 +66,6 @@ import java.util.zip.GZIPInputStream;
import java.util.zip.Inflater;
import java.util.zip.InflaterInputStream;
-import javax.xml.bind.DatatypeConverter;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.xpath.XPath;
-import javax.xml.xpath.XPathConstants;
-import javax.xml.xpath.XPathExpression;
-import javax.xml.xpath.XPathExpressionException;
-import javax.xml.xpath.XPathFactory;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.SAXException;
-
/**
* A simple utility class for posting raw updates to a Solr server,
* has a main method so it can be run on the command line.
@@ -77,7 +76,6 @@ import org.xml.sax.SAXException;
public class SimplePostTool {
private static final String DEFAULT_POST_HOST = "localhost";
private static final String DEFAULT_POST_PORT = "8983";
- private static final String DEFAULT_POST_CORE = "collection1";
private static final String VERSION_OF_THIS_TOOL = "1.5";
private static final String DEFAULT_COMMIT = "yes";
@@ -217,13 +215,22 @@ public class SimplePostTool {
if (! DATA_MODES.contains(mode)) {
fatal("System Property 'data' is not valid for this tool: " + mode);
}
+
String params = System.getProperty("params", "");
String host = System.getProperty("host", DEFAULT_POST_HOST);
String port = System.getProperty("port", DEFAULT_POST_PORT);
- String core = System.getProperty("c", DEFAULT_POST_CORE);
-
- urlStr = System.getProperty("url", String.format(Locale.ROOT, "http://%s:%s/solr/%s/update", host, port, core));
+ String core = System.getProperty("c");
+
+ urlStr = System.getProperty("url");
+
+ if (urlStr == null && core == null) {
+ fatal("Specifying either url or core/collection is mandatory.\n" + USAGE_STRING_SHORT);
+ }
+
+ if(urlStr == null) {
+ urlStr = String.format(Locale.ROOT, "http://%s:%s/solr/%s/update", host, port, core);
+ }
urlStr = SimplePostTool.appendParam(urlStr, params);
URL url = new URL(urlStr);
boolean auto = isOn(System.getProperty("auto", DEFAULT_AUTO));
@@ -372,12 +379,12 @@ public class SimplePostTool {
System.out.println
(USAGE_STRING_SHORT+"\n\n" +
"Supported System Properties and their defaults:\n"+
+ " -Dc=<core/collection>\n"+
+ " -Durl=<solr-update-url> \n"+
" -Ddata=files|web|args|stdin (default=" + DEFAULT_DATA_MODE + ")\n"+
" -Dtype=<content-type> (default=" + DEFAULT_CONTENT_TYPE + ")\n"+
- " -Durl=<solr-update-url> (default=" + String.format(Locale.ROOT, "http://%s:%s/solr/%s/update", DEFAULT_POST_HOST, DEFAULT_POST_PORT, DEFAULT_POST_CORE) + ")\n"+
" -Dhost=<host> (default: " + DEFAULT_POST_HOST+ ")\n"+
" -Dport=<port> (default: " + DEFAULT_POST_PORT+ ")\n"+
- " -Dc=<core/collection> (default: " + DEFAULT_POST_CORE+ ")\n"+
" -Dauto=yes|no (default=" + DEFAULT_AUTO + ")\n"+
" -Drecursive=yes|no|<depth> (default=" + DEFAULT_RECURSIVE + ")\n"+
" -Ddelay=<seconds> (default=0 for files, 10 for web)\n"+
@@ -386,26 +393,27 @@ public class SimplePostTool {
" -Dcommit=yes|no (default=" + DEFAULT_COMMIT + ")\n"+
" -Doptimize=yes|no (default=" + DEFAULT_OPTIMIZE + ")\n"+
" -Dout=yes|no (default=" + DEFAULT_OUT + ")\n\n"+
- "This is a simple command line tool for POSTing raw data to a Solr\n"+
- "port. Data can be read from files specified as commandline args,\n"+
+ "This is a simple command line tool for POSTing raw data to a Solr port.\n"+
+ "NOTE: Specifying the url/core/collection name is mandatory.\n" +
+ "Data can be read from files specified as commandline args,\n"+
"URLs specified as args, as raw commandline arg strings or via STDIN.\n"+
"Examples:\n"+
" java -jar post.jar *.xml\n"+
- " java -Ddata=args -jar post.jar '<delete><id>42</id></delete>'\n"+
- " java -Ddata=stdin -jar post.jar < hd.xml\n"+
- " java -Ddata=web -jar post.jar http://example.com/\n"+
- " java -Dtype=text/csv -jar post.jar *.csv\n"+
- " java -Dtype=application/json -jar post.jar *.json\n"+
+ " java -Ddata=args -Dc=gettingstarted -jar post.jar '<delete><id>42</id></delete>'\n"+
+ " java -Ddata=stdin -Dc=gettingstarted -jar post.jar < hd.xml\n"+
+ " java -Ddata=web -Dc=gettingstarted -jar post.jar http://example.com/\n"+
+ " java -Dtype=text/csv -Dc=gettingstarted -jar post.jar *.csv\n"+
+ " java -Dtype=application/json -Dc=gettingstarted -jar post.jar *.json\n"+
" java -Durl=http://localhost:8983/solr/update/extract -Dparams=literal.id=a -Dtype=application/pdf -jar post.jar a.pdf\n"+
- " java -Dauto -jar post.jar *\n"+
- " java -Dauto -Drecursive -jar post.jar afolder\n"+
- " java -Dauto -Dfiletypes=ppt,html -jar post.jar afolder\n"+
+ " java -Dauto -Dc=gettingstarted -jar post.jar *\n"+
+ " java -Dauto -Dc=gettingstarted -Drecursive -jar post.jar afolder\n"+
+ " java -Dauto -Dc=gettingstarted -Dfiletypes=ppt,html -jar post.jar afolder\n"+
"The options controlled by System Properties include the Solr\n"+
"URL to POST to, the Content-Type of the data, whether a commit\n"+
"or optimize should be executed, and whether the response should\n"+
"be written to STDOUT. If auto=yes the tool will try to set type\n"+
- "and url automatically from file name. When posting rich documents\n"+
- "the file name will be propagated as \"resource.name\" and also used\n"+
+ "automatically from file name. When posting rich documents the\n"+
+ "file name will be propagated as \"resource.name\" and also used\n"+
"as \"literal.id\". You may override these or any other request parameter\n"+
"through the -Dparams property. To do a commit only, use \"-\" as argument.\n"+
"The web mode is a simple crawler following links within domain, default delay=10s.");
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/util/SimplePostToolTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/util/SimplePostToolTest.java?rev=1645866&r1=1645865&r2=1645866&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/util/SimplePostToolTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/util/SimplePostToolTest.java Tue Dec 16 07:17:39 2014
@@ -17,6 +17,12 @@ package org.apache.solr.util;
* limitations under the License.
*/
+import org.apache.solr.SolrTestCaseJ4;
+import org.apache.solr.util.SimplePostTool.PageFetcher;
+import org.apache.solr.util.SimplePostTool.PageFetcherResult;
+import org.junit.Before;
+import org.junit.Test;
+
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
@@ -29,12 +35,6 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;
-import org.apache.solr.SolrTestCaseJ4;
-import org.apache.solr.util.SimplePostTool.PageFetcher;
-import org.apache.solr.util.SimplePostTool.PageFetcherResult;
-import org.junit.Before;
-import org.junit.Test;
-
/**
* NOTE: do *not* use real hostnames, not even "example.com", in this test.
*
@@ -49,6 +49,11 @@ public class SimplePostToolTest extends
@Before
public void initVariousPostTools() throws Exception {
String[] args = {"-"};
+
+ // Add a dummy core/collection property so that the SimplePostTool
+ // doesn't fail fast.
+ System.setProperty("c", "testcollection");
+
System.setProperty("data", "files");
t_file = SimplePostTool.parseArgsAndInit(args);