You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ab...@apache.org on 2020/05/11 17:25:53 UTC

[lucene-solr] 01/03: WIP.

This is an automated email from the ASF dual-hosted git repository.

ab pushed a commit to branch jira/solr-14470
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git

commit 0eb20a4f110894fc2422d03d94092aee73c99d69
Author: Andrzej Bialecki <ab...@apache.org>
AuthorDate: Mon May 11 11:30:09 2020 +0200

    WIP.
---
 .../org/apache/solr/handler/ExportHandler.java     |  7 +++++
 .../org/apache/solr/handler/StreamHandler.java     | 35 +++++++++++-----------
 .../apache/solr/handler/export/ExportWriter.java   |  6 ++++
 .../solr/client/solrj/io/stream/SolrStream.java    |  5 ++--
 .../apache/solr/common/params/StreamParams.java    | 34 +++++++++++++++++++++
 5 files changed, 68 insertions(+), 19 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/handler/ExportHandler.java b/solr/core/src/java/org/apache/solr/handler/ExportHandler.java
index ea9239d..b0af6f6 100644
--- a/solr/core/src/java/org/apache/solr/handler/ExportHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/ExportHandler.java
@@ -24,6 +24,7 @@ import java.util.Map;
 import org.apache.solr.common.params.CommonParams;
 import org.apache.solr.common.params.MapSolrParams;
 import org.apache.solr.common.params.SolrParams;
+import org.apache.solr.core.SolrCore;
 import org.apache.solr.handler.component.SearchHandler;
 import org.apache.solr.handler.export.ExportWriter;
 import org.apache.solr.request.SolrQueryRequest;
@@ -32,6 +33,12 @@ import org.apache.solr.response.SolrQueryResponse;
 import static org.apache.solr.common.params.CommonParams.JSON;
 
 public class ExportHandler extends SearchHandler {
+
+  @Override
+  public void inform(SolrCore core) {
+    super.inform(core);
+  }
+
   @Override
   public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp) throws Exception {
     try {
diff --git a/solr/core/src/java/org/apache/solr/handler/StreamHandler.java b/solr/core/src/java/org/apache/solr/handler/StreamHandler.java
index bd76ae9..2101d37 100644
--- a/solr/core/src/java/org/apache/solr/handler/StreamHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/StreamHandler.java
@@ -53,6 +53,7 @@ import org.apache.solr.common.cloud.ZkStateReader;
 import org.apache.solr.common.params.CommonParams;
 import org.apache.solr.common.params.ModifiableSolrParams;
 import org.apache.solr.common.params.SolrParams;
+import org.apache.solr.common.params.StreamParams;
 import org.apache.solr.core.CloseHook;
 import org.apache.solr.core.CoreContainer;
 import org.apache.solr.core.PluginInfo;
@@ -183,10 +184,10 @@ public class StreamHandler extends RequestHandlerBase implements SolrCoreAware,
     TupleStream tupleStream;
 
     try {
-      StreamExpression streamExpression = StreamExpressionParser.parse(params.get("expr"));
+      StreamExpression streamExpression = StreamExpressionParser.parse(params.get(StreamParams.EXPR));
       if (this.streamFactory.isEvaluator(streamExpression)) {
-        StreamExpression tupleExpression = new StreamExpression("tuple");
-        tupleExpression.addParameter(new StreamExpressionNamedParameter("return-value", streamExpression));
+        StreamExpression tupleExpression = new StreamExpression(StreamParams.TUPLE);
+        tupleExpression.addParameter(new StreamExpressionNamedParameter(StreamParams.RETURN_VALUE, streamExpression));
         tupleStream = this.streamFactory.constructStream(tupleExpression);
       } else {
         tupleStream = this.streamFactory.constructStream(streamExpression);
@@ -195,7 +196,7 @@ public class StreamHandler extends RequestHandlerBase implements SolrCoreAware,
       // Catch exceptions that occur while the stream is being created. This will include streaming expression parse
       // rules.
       SolrException.log(log, e);
-      rsp.add("result-set", new DummyErrorStream(e));
+      rsp.add(StreamParams.RESULT_SET, new DummyErrorStream(e));
 
       return;
     }
@@ -247,9 +248,9 @@ public class StreamHandler extends RequestHandlerBase implements SolrCoreAware,
       daemonStream.setDaemons(daemons);
       daemonStream.open(); // This will start the daemonStream
       daemons.put(daemonStream.getId(), daemonStream);
-      rsp.add("result-set", new DaemonResponseStream("Daemon:" + daemonStream.getId() + " started on " + coreName));
+      rsp.add(StreamParams.RESULT_SET, new DaemonResponseStream("Daemon:" + daemonStream.getId() + " started on " + coreName));
     } else {
-      rsp.add("result-set", new TimerStream(new ExceptionStream(tupleStream)));
+      rsp.add(StreamParams.RESULT_SET, new TimerStream(new ExceptionStream(tupleStream)));
     }
   }
 
@@ -262,40 +263,40 @@ public class StreamHandler extends RequestHandlerBase implements SolrCoreAware,
 
     if ("list".equals(action)) {
       Collection<DaemonStream> vals = daemons.values();
-      rsp.add("result-set", new DaemonCollectionStream(vals));
+      rsp.add(StreamParams.RESULT_SET, new DaemonCollectionStream(vals));
       return;
     }
 
     String id = params.get(ID);
     DaemonStream d = daemons.get(id);
     if (d == null) {
-      rsp.add("result-set", new DaemonResponseStream("Daemon:" + id + " not found on " + coreName));
+      rsp.add(StreamParams.RESULT_SET, new DaemonResponseStream("Daemon:" + id + " not found on " + coreName));
       return;
     }
 
     switch (action) {
       case "stop":
         d.close();
-        rsp.add("result-set", new DaemonResponseStream("Daemon:" + id + " stopped on " + coreName));
+        rsp.add(StreamParams.RESULT_SET, new DaemonResponseStream("Daemon:" + id + " stopped on " + coreName));
         break;
 
       case "start":
         try {
           d.open();
         } catch (IOException e) {
-          rsp.add("result-set", new DaemonResponseStream("Daemon: " + id + " error: " + e.getMessage()));
+          rsp.add(StreamParams.RESULT_SET, new DaemonResponseStream("Daemon: " + id + " error: " + e.getMessage()));
         }
-        rsp.add("result-set", new DaemonResponseStream("Daemon:" + id + " started on " + coreName));
+        rsp.add(StreamParams.RESULT_SET, new DaemonResponseStream("Daemon:" + id + " started on " + coreName));
         break;
 
       case "kill":
         daemons.remove(id);
         d.close(); // we already found it in the daemons list, so we don't need to verify we removed it.
-        rsp.add("result-set", new DaemonResponseStream("Daemon:" + id + " killed on " + coreName));
+        rsp.add(StreamParams.RESULT_SET, new DaemonResponseStream("Daemon:" + id + " killed on " + coreName));
         break;
 
       default:
-        rsp.add("result-set", new DaemonResponseStream("Daemon:" + id + " action '"
+        rsp.add(StreamParams.RESULT_SET, new DaemonResponseStream("Daemon:" + id + " action '"
             + action + "' not recognized on " + coreName));
         break;
     }
@@ -360,8 +361,8 @@ public class StreamHandler extends RequestHandlerBase implements SolrCoreAware,
       }
 
       Map m = new HashMap();
-      m.put("EOF", true);
-      m.put("EXCEPTION", msg);
+      m.put(StreamParams.EOF, true);
+      m.put(StreamParams.EXCEPTION, msg);
       return new Tuple(m);
     }
   }
@@ -405,7 +406,7 @@ public class StreamHandler extends RequestHandlerBase implements SolrCoreAware,
         return it.next().getInfo();
       } else {
         Map m = new HashMap();
-        m.put("EOF", true);
+        m.put(StreamParams.EOF, true);
         return new Tuple(m);
       }
     }
@@ -449,7 +450,7 @@ public class StreamHandler extends RequestHandlerBase implements SolrCoreAware,
     public Tuple read() {
       if (sendEOF) {
         Map m = new HashMap();
-        m.put("EOF", true);
+        m.put(StreamParams.EOF, true);
         return new Tuple(m);
       } else {
         sendEOF = true;
diff --git a/solr/core/src/java/org/apache/solr/handler/export/ExportWriter.java b/solr/core/src/java/org/apache/solr/handler/export/ExportWriter.java
index e4d6da0..2386c55 100644
--- a/solr/core/src/java/org/apache/solr/handler/export/ExportWriter.java
+++ b/solr/core/src/java/org/apache/solr/handler/export/ExportWriter.java
@@ -41,6 +41,7 @@ import org.apache.solr.common.MapWriter.EntryWriter;
 import org.apache.solr.common.PushWriter;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.params.SolrParams;
+import org.apache.solr.common.params.StreamParams;
 import org.apache.solr.common.util.JavaBinCodec;
 import org.apache.solr.core.SolrCore;
 import org.apache.solr.request.SolrQueryRequest;
@@ -216,6 +217,11 @@ public class ExportWriter implements SolrCore.RawWriter, Closeable {
       return;
     }
 
+    String expr = params.get(StreamParams.EXPR);
+    if (expr != null) {
+
+    }
+
     writer.writeMap(m -> {
       m.put("responseHeader", singletonMap("status", 0));
       m.put("response", (MapWriter) mw -> {
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/SolrStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/SolrStream.java
index fad08d2..d1b666d 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/SolrStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/SolrStream.java
@@ -43,6 +43,7 @@ import org.apache.solr.client.solrj.request.QueryRequest;
 import org.apache.solr.common.params.CommonParams;
 import org.apache.solr.common.params.ModifiableSolrParams;
 import org.apache.solr.common.params.SolrParams;
+import org.apache.solr.common.params.StreamParams;
 import org.apache.solr.common.util.NamedList;
 
 /**
@@ -203,11 +204,11 @@ public class SolrStream extends TupleStream {
       if (fields == null) {
         //Return the EOF tuple.
         Map m = new HashMap();
-        m.put("EOF", true);
+        m.put(StreamParams.EOF, true);
         return new Tuple(m);
       } else {
 
-        String msg = (String) fields.get("EXCEPTION");
+        String msg = (String) fields.get(StreamParams.EXCEPTION);
         if (msg != null) {
           HandledException ioException = new HandledException(msg);
           throw ioException;
diff --git a/solr/solrj/src/java/org/apache/solr/common/params/StreamParams.java b/solr/solrj/src/java/org/apache/solr/common/params/StreamParams.java
new file mode 100644
index 0000000..edc06d1
--- /dev/null
+++ b/solr/solrj/src/java/org/apache/solr/common/params/StreamParams.java
@@ -0,0 +1,34 @@
+/*
+ * 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.common.params;
+
+/**
+ * Stream Parameters and Properties.
+ */
+public interface StreamParams {
+
+  // parameters
+  String EXPR = "expr";
+
+  // properties
+  String TUPLE = "tuple";
+  String DOCS = "docs";
+  String RETURN_VALUE = "return-value";
+  String RESULT_SET = "result-set";
+  String EOF = "EOF";
+  String EXCEPTION = "EXCEPTION";
+}