Author: kwright
Date: Fri Sep 21 13:37:42 2018
New Revision: 1841587
URL: http://svn.apache.org/viewvc?rev=1841587&view=rev
Log:
Partial fix for CONNECTORS-1533. This allows the solr connector to function,
but documents will not be transmitted with multipart forms. Further work will
be needed to make this work properly going forward.
Modified:
manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedHttpSolrClient.java
Modified:
manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedHttpSolrClient.java
URL:
http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedHttpSolrClient.java?rev=1841587&r1=1841586&r2=1841587&view=diff
==============================================================================
---
manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedHttpSolrClient.java
(original)
+++
manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedHttpSolrClient.java
Fri Sep 21 13:37:42 2018
@@ -18,6 +18,7 @@ package org.apache.manifoldcf.agents.out
import java.io.IOException;
import java.io.InputStream;
+import java.io.OutputStream;
import java.net.ConnectException;
import java.net.SocketTimeoutException;
import java.nio.charset.Charset;
@@ -53,6 +54,7 @@ import org.apache.http.message.BasicHead
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.apache.http.entity.ContentType;
+import org.apache.http.entity.BasicHttpEntity;
import org.apache.manifoldcf.core.util.URLDecoder;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.ResponseParser;
@@ -156,7 +158,26 @@ public class ModifiedHttpSolrClient exte
|| (streams != null && streams.size() > 1)) && !hasNullStreamName;
LinkedList<NameValuePair> postOrPutParams = new LinkedList<>();
- if (streams == null || isMultipart) {
+ if(contentWriter != null) {
+ String fullQueryUrl = url + toQueryString(wparams, false);
+ HttpEntityEnclosingRequestBase postOrPut = SolrRequest.METHOD.POST ==
request.getMethod() ?
+ new HttpPost(fullQueryUrl) : new HttpPut(fullQueryUrl);
+ postOrPut.addHeader("Content-Type",
+ contentWriter.getContentType());
+ postOrPut.setEntity(new BasicHttpEntity(){
+ @Override
+ public boolean isStreaming() {
+ return true;
+ }
+
+ @Override
+ public void writeTo(OutputStream outstream) throws IOException {
+ contentWriter.write(outstream);
+ }
+ });
+ return postOrPut;
+
+ } else if (streams == null || isMultipart) {
// send server list and request list as query string params
ModifiableSolrParams queryParams =
calculateQueryParams(getQueryParams(), wparams);
queryParams.add(calculateQueryParams(request.getQueryParams(),
wparams));