You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by kw...@apache.org on 2015/03/27 20:33:37 UTC

svn commit: r1669660 - in /manifoldcf/trunk: ./ connectors/solr/ connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ connectors/solr/connector/src/test/java/org/apache/manifoldcf/agents/output/solr/tests/

Author: kwright
Date: Fri Mar 27 19:33:37 2015
New Revision: 1669660

URL: http://svn.apache.org/r1669660
Log:
Fix for CONNECTORS-1176.

Added:
    manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedHttpSolrClient.java
      - copied, changed from r1668373, manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedHttpSolrServer.java
    manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedLBHttpSolrClient.java
      - copied, changed from r1668373, manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedLBHttpSolrServer.java
Removed:
    manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedHttpSolrServer.java
    manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedLBHttpSolrServer.java
Modified:
    manifoldcf/trunk/CHANGES.txt
    manifoldcf/trunk/build.xml
    manifoldcf/trunk/connectors/solr/build.xml
    manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/HttpPoster.java
    manifoldcf/trunk/connectors/solr/connector/src/test/java/org/apache/manifoldcf/agents/output/solr/tests/MockSolrService.java
    manifoldcf/trunk/pom.xml

Modified: manifoldcf/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/CHANGES.txt?rev=1669660&r1=1669659&r2=1669660&view=diff
==============================================================================
--- manifoldcf/trunk/CHANGES.txt (original)
+++ manifoldcf/trunk/CHANGES.txt Fri Mar 27 19:33:37 2015
@@ -3,6 +3,9 @@ $Id$
 
 ======================= 2.1-dev =====================
 
+CONNECTORS-1176: Update SolrJ version.
+(Karl Wright)
+
 CONNECTORS-1175: Documentum connector needs to set file name.
 (Dmitry Bardin, Karl Wright)
 

Modified: manifoldcf/trunk/build.xml
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/build.xml?rev=1669660&r1=1669659&r2=1669660&view=diff
==============================================================================
--- manifoldcf/trunk/build.xml (original)
+++ manifoldcf/trunk/build.xml Fri Mar 27 19:33:37 2015
@@ -82,7 +82,8 @@
     <property name="velocity.version" value="1.7"/>
     <property name="wss4j.version" value="1.5.12"/>
     <property name="xmlgraphics-commons.version" value="1.4"/>
-    <property name="wstx-asl.version" value="3.2.9"/>
+    <property name="woodstox-core-asl.version" value="4.4.1"/>
+    <property name="stax2-api.version" value="3.1.4"/>
     <property name="xmlsec.version" value="1.4.0"/>
     <property name="xml-apis.version" value="1.4.01"/>
     <property name="jstl.version" value="1.2"/>
@@ -1426,16 +1427,22 @@ Use Apache Forrest version forrest-0.9-d
         </antcall>
     </target>
     
-    <target name="download-wstx-asl">
+    <target name="download-woodstox">
         <mkdir dir="lib"/>
         <antcall target="download-via-maven"><param name="target" value="lib"/>
             <param name="project-path" value="org/codehaus/woodstox"/>
-            <param name="artifact-version" value="${wstx-asl.version}"/>
-            <param name="artifact-name" value="wstx-asl"/>
+            <param name="artifact-version" value="${woodstox-core-asl.version}"/>
+            <param name="artifact-name" value="woodstox-core-asl"/>
+            <param name="artifact-type" value="jar"/>
+        </antcall>
+        <antcall target="download-via-maven"><param name="target" value="lib"/>
+            <param name="project-path" value="org/codehaus/woodstox"/>
+            <param name="artifact-version" value="${stax2-api.version}"/>
+            <param name="artifact-name" value="stax2-api"/>
             <param name="artifact-type" value="jar"/>
         </antcall>
     </target>
-    
+
     <target name="download-xmlsec">
         <!-- Alfresco dependency, so resolve it from alfresco svn -->
         <mkdir dir="lib"/>
@@ -1664,7 +1671,7 @@ Use Apache Forrest version forrest-0.9-d
         <antcall target="download-via-maven">
             <param name="target" value="lib"/>
             <param name="project-path" value="org/apache/solr"/>
-            <param name="artifact-version" value="4.10.3"/>
+            <param name="artifact-version" value="5.0.0"/>
             <param name="artifact-name" value="solr-solrj"/>
             <param name="artifact-type" value="jar"/>
         </antcall>
@@ -1944,7 +1951,7 @@ Use Apache Forrest version forrest-0.9-d
         </antcall>
     </target>
 	
-    <target name="make-core-deps" depends="download-resteasy,download-jsoup,download-mockito,download-alfresco-webscript-plugin,download-alfresco-indexer-client,download-mongo-java-driver,download-jira-client,download-google-api-client,download-dropbox-client,download-solrj,download-zookeeper,download-httpcomponents,download-json,download-hsqldb,download-xerces,download-commons,download-elasticsearch-plugin,download-solr-plugins,download-sharepoint-plugins,download-jstl,download-xmlgraphics-commons,download-wstx-asl,download-xmlsec,download-xml-apis,download-wss4j,download-velocity,download-streambuffer,download-stax,download-servlet-api,download-xml-resolver,download-osgi,download-opensaml,download-mimepull,download-mail,download-log4j,download-junit,download-jaxws,download-glassfish,download-jaxb,download-tomcat,download-h2,download-h2-support,download-geronimo-specs,download-fop,download-postgresql,download-axis,download-saaj,download-wsdl4j,download-castor,download-jetty,downloa
 d-slf4j,download-xalan,download-activation,download-avalon-framework,download-poi,download-chemistry,download-ecj,download-hadoop,download-protobuf,download-tika,download-jackson">
+    <target name="make-core-deps" depends="download-resteasy,download-jsoup,download-mockito,download-alfresco-webscript-plugin,download-alfresco-indexer-client,download-mongo-java-driver,download-jira-client,download-google-api-client,download-dropbox-client,download-solrj,download-zookeeper,download-httpcomponents,download-json,download-hsqldb,download-xerces,download-commons,download-elasticsearch-plugin,download-solr-plugins,download-sharepoint-plugins,download-jstl,download-xmlgraphics-commons,download-woodstox,download-xmlsec,download-xml-apis,download-wss4j,download-velocity,download-streambuffer,download-stax,download-servlet-api,download-xml-resolver,download-osgi,download-opensaml,download-mimepull,download-mail,download-log4j,download-junit,download-jaxws,download-glassfish,download-jaxb,download-tomcat,download-h2,download-h2-support,download-geronimo-specs,download-fop,download-postgresql,download-axis,download-saaj,download-wsdl4j,download-castor,download-jetty,downloa
 d-slf4j,download-xalan,download-activation,download-avalon-framework,download-poi,download-chemistry,download-ecj,download-hadoop,download-protobuf,download-tika,download-jackson">
         <copy todir="lib">
             <fileset dir="lib-license" includes="*.txt"/>
         </copy>

Modified: manifoldcf/trunk/connectors/solr/build.xml
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/solr/build.xml?rev=1669660&r1=1669659&r2=1669660&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/solr/build.xml (original)
+++ manifoldcf/trunk/connectors/solr/build.xml Fri Mar 27 19:33:37 2015
@@ -36,7 +36,8 @@
             <include name="solr-solrj*.jar"/>
             <include name="noggit*.jar"/>
             <include name="httpmime*.jar"/>
-            <include name="wstx-asl*.jar"/>
+            <include name="woodstox-core-asl*.jar"/>
+            <include name="stax2-api*.jar"/>
             <include name="jcl-over-slf4j*.jar"/>
         </fileset>
     </path>
@@ -48,7 +49,8 @@
                 <include name="solr-solrj*.jar"/>
                 <include name="noggit*.jar"/>
                 <include name="httpmime*.jar"/>
-                <include name="wstx-asl*.jar"/>
+                <include name="woodstox-core-asl*.jar"/>
+                <include name="stax2-api*.jar"/>
                 <include name="jcl-over-slf4j*.jar"/>
             </fileset>
         </copy>

Modified: manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/HttpPoster.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/HttpPoster.java?rev=1669660&r1=1669659&r2=1669660&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/HttpPoster.java (original)
+++ manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/HttpPoster.java Fri Mar 27 19:33:37 2015
@@ -43,9 +43,9 @@ import org.apache.http.auth.Credentials;
 import org.apache.http.auth.UsernamePasswordCredentials;
 
 import org.apache.manifoldcf.core.util.URLEncoder;
-import org.apache.solr.client.solrj.SolrServer;
+import org.apache.solr.client.solrj.SolrClient;
 import org.apache.solr.client.solrj.SolrServerException;
-import org.apache.solr.client.solrj.impl.CloudSolrServer;
+import org.apache.solr.client.solrj.impl.CloudSolrClient;
 import org.apache.solr.client.solrj.request.ContentStreamUpdateRequest;
 import org.apache.solr.client.solrj.request.UpdateRequest;
 import org.apache.solr.client.solrj.impl.XMLResponseParser;
@@ -83,7 +83,7 @@ public class HttpPoster
 
   // Solrj connection-associated objects
   protected PoolingHttpClientConnectionManager connectionManager = null;
-  protected SolrServer solrServer = null;
+  protected SolrClient solrServer = null;
   
   // Action URI pieces
   private final String postUpdateAction;
@@ -153,7 +153,7 @@ public class HttpPoster
     
     try
     {
-      CloudSolrServer cloudSolrServer = new CloudSolrServer(zookeeperHosts, new ModifiedLBHttpSolrServer(HttpClientUtil.createClient(null)));
+      CloudSolrClient cloudSolrServer = new CloudSolrClient(zookeeperHosts, new ModifiedLBHttpSolrClient(HttpClientUtil.createClient(null)));
       cloudSolrServer.setZkClientTimeout(zkClientTimeout);
       cloudSolrServer.setZkConnectTimeout(zkConnectTimeout);
       cloudSolrServer.setDefaultCollection(collection);
@@ -264,7 +264,7 @@ public class HttpPoster
 
 
     String httpSolrServerUrl = protocol + "://" + server + ":" + port + location;
-    solrServer = new ModifiedHttpSolrServer(httpSolrServerUrl, localClient, new XMLResponseParser());
+    solrServer = new ModifiedHttpSolrClient(httpSolrServerUrl, localClient, new XMLResponseParser());
   }
 
   /** Shut down the poster.
@@ -1556,7 +1556,7 @@ public class HttpPoster
     }
 
     @Override
-    public SolrPingResponse process( SolrServer server ) throws SolrServerException, IOException 
+    public SolrPingResponse process( SolrClient server ) throws SolrServerException, IOException 
     {
       long startTime = System.currentTimeMillis();
       SolrPingResponse res = new SolrPingResponse();

Copied: manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedHttpSolrClient.java (from r1668373, manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedHttpSolrServer.java)
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedHttpSolrClient.java?p2=manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedHttpSolrClient.java&p1=manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedHttpSolrServer.java&r1=1668373&r2=1669660&rev=1669660&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedHttpSolrServer.java (original)
+++ manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedHttpSolrClient.java Fri Mar 27 19:33:37 2015
@@ -35,9 +35,12 @@ import org.apache.http.NameValuePair;
 import org.apache.http.NoHttpResponseException;
 import org.apache.http.client.HttpClient;
 import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
 import org.apache.http.client.methods.HttpGet;
 import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.methods.HttpPut;
 import org.apache.http.client.methods.HttpRequestBase;
+import org.apache.http.client.methods.HttpUriRequest;
 import org.apache.http.client.params.ClientPNames;
 import org.apache.http.conn.ClientConnectionManager;
 import org.apache.http.entity.InputStreamEntity;
@@ -51,10 +54,11 @@ import org.apache.http.message.BasicName
 import org.apache.http.util.EntityUtils;
 import org.apache.http.entity.ContentType;
 import org.apache.manifoldcf.core.util.URLDecoder;
-import org.apache.solr.client.solrj.impl.HttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrClient;
 import org.apache.solr.client.solrj.ResponseParser;
+import org.apache.solr.client.solrj.impl.BinaryResponseParser;
 import org.apache.solr.client.solrj.SolrRequest;
-import org.apache.solr.client.solrj.SolrServer;
+import org.apache.solr.client.solrj.SolrClient;
 import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.client.solrj.request.RequestWriter;
 import org.apache.solr.client.solrj.request.UpdateRequest;
@@ -80,7 +84,7 @@ import java.nio.charset.Charset;
 * problem in a method-insensitive way, but so far there has been no sign that
 * the Solr team is interested in committing them.
 */
-public class ModifiedHttpSolrServer extends HttpSolrServer
+public class ModifiedHttpSolrClient extends HttpSolrClient
 {
   // Here we duplicate all the private fields we need
   
@@ -91,18 +95,16 @@ public class ModifiedHttpSolrServer exte
 
   
   private final HttpClient httpClient;
-  private boolean followRedirects = false;
   private int maxRetries = 0;
   private boolean useMultiPartPost = true;
 
-  public ModifiedHttpSolrServer(String baseURL, HttpClient client, ResponseParser parser) {
+  public ModifiedHttpSolrClient(String baseURL, HttpClient client, ResponseParser parser) {
     super(baseURL, client, parser);
     httpClient = client;
   }
   
   @Override
-  public NamedList<Object> request(final SolrRequest request,
-      final ResponseParser processor) throws SolrServerException, IOException {
+  protected HttpRequestBase createMethod(final SolrRequest request) throws IOException, SolrServerException {
     HttpRequestBase method = null;
     InputStream is = null;
     SolrParams params = request.getParams();
@@ -127,7 +129,6 @@ public class ModifiedHttpSolrServer exte
     if (invariantParams != null) {
       wparams.add(invariantParams);
     }
-    params = wparams;
     
     int tries = maxRetries + 1;
     try {
@@ -141,9 +142,9 @@ public class ModifiedHttpSolrServer exte
             if( streams != null ) {
               throw new SolrException( SolrException.ErrorCode.BAD_REQUEST, "GET can't send streams!" );
             }
-            method = new HttpGet( baseUrl + path + toQueryString( params, false ) );
+            method = new HttpGet( baseUrl + path + toQueryString( wparams, false ) );
           }
-          else if( SolrRequest.METHOD.POST == request.getMethod() ) {
+          else if( SolrRequest.METHOD.POST == request.getMethod() || SolrRequest.METHOD.PUT == request.getMethod() ) {
 
             String url = baseUrl + path;
             boolean hasNullStreamName = false;
@@ -155,28 +156,33 @@ public class ModifiedHttpSolrServer exte
                 }
               }
             }
-            boolean isMultipart = (this.useMultiPartPost || ( streams != null && streams.size() > 1 )) && !hasNullStreamName;
+            boolean isMultipart = ((this.useMultiPartPost && SolrRequest.METHOD.POST == request.getMethod())
+              || ( streams != null && streams.size() > 1 )) && !hasNullStreamName;
             
-            LinkedList<NameValuePair> postParams = new LinkedList<NameValuePair>();
+            LinkedList<NameValuePair> postOrPutParams = new LinkedList<>();
             if (streams == null || isMultipart) {
-              HttpPost post = new HttpPost(url);
-              post.setHeader("Content-Charset", "UTF-8");
+              // send server list and request list as query string params
+              ModifiableSolrParams queryParams = calculateQueryParams(getQueryParams(), wparams);
+              queryParams.add(calculateQueryParams(request.getQueryParams(), wparams));
+              String fullQueryUrl = url + toQueryString( queryParams, false );
+              HttpEntityEnclosingRequestBase postOrPut = SolrRequest.METHOD.POST == request.getMethod() ?
+                new HttpPost(fullQueryUrl) : new HttpPut(fullQueryUrl);
               if (!isMultipart) {
-                post.addHeader("Content-Type",
+                postOrPut.addHeader("Content-Type",
                     "application/x-www-form-urlencoded; charset=UTF-8");
               }
 
-              List<FormBodyPart> parts = new LinkedList<FormBodyPart>();
-              Iterator<String> iter = params.getParameterNamesIterator();
+              List<FormBodyPart> parts = new LinkedList<>();
+              Iterator<String> iter = wparams.getParameterNamesIterator();
               while (iter.hasNext()) {
                 String p = iter.next();
-                String[] vals = params.getParams(p);
+                String[] vals = wparams.getParams(p);
                 if (vals != null) {
                   for (String v : vals) {
                     if (isMultipart) {
                       parts.add(new FormBodyPart(p, new StringBody(v, StandardCharsets.UTF_8)));
                     } else {
-                      postParams.add(new BasicNameValuePair(p, v));
+                      postOrPutParams.add(new BasicNameValuePair(p, v));
                     }
                   }
                 }
@@ -186,10 +192,13 @@ public class ModifiedHttpSolrServer exte
                 for (ContentStream content : streams) {
                   String contentType = content.getContentType();
                   if(contentType==null) {
-                    contentType = "application/octet-stream"; // default
+                    contentType = BinaryResponseParser.BINARY_CONTENT_TYPE; // default
                   }
-                  String contentName = content.getName();
-                  parts.add(new FormBodyPart(contentName, 
+                  String name = content.getName();
+                  if(name==null) {
+                    name = "";
+                  }
+                  parts.add(new FormBodyPart(name, 
                        new InputStreamBody(
                            content.getStream(), 
                            contentType, 
@@ -199,21 +208,23 @@ public class ModifiedHttpSolrServer exte
               
               if (parts.size() > 0) {
                 ModifiedMultipartEntity entity = new ModifiedMultipartEntity(HttpMultipartMode.STRICT, null, StandardCharsets.UTF_8);
+                //MultipartEntity entity = new MultipartEntity(HttpMultipartMode.STRICT);
                 for(FormBodyPart p: parts) {
                   entity.addPart(p);
                 }
-                post.setEntity(entity);
+                postOrPut.setEntity(entity);
               } else {
                 //not using multipart
-                post.setEntity(new UrlEncodedFormEntity(postParams, StandardCharsets.UTF_8));
+                postOrPut.setEntity(new UrlEncodedFormEntity(postOrPutParams, StandardCharsets.UTF_8));
               }
 
-              method = post;
+              method = postOrPut;
             }
             // It is has one stream, it is the post body, put the params in the URL
             else {
-              String pstr = toQueryString(params, false);
-              HttpPost post = new HttpPost(url + pstr);
+              String pstr = toQueryString(wparams, false);
+              HttpEntityEnclosingRequestBase postOrPut = SolrRequest.METHOD.POST == request.getMethod() ?
+                new HttpPost(url + pstr) : new HttpPut(url + pstr);
 
               // Single stream as body
               // Using a loop just to get the first one
@@ -223,7 +234,7 @@ public class ModifiedHttpSolrServer exte
                 break;
               }
               if (contentStream[0] instanceof RequestWriter.LazyContentStream) {
-                post.setEntity(new InputStreamEntity(contentStream[0].getStream(), -1) {
+                postOrPut.setEntity(new InputStreamEntity(contentStream[0].getStream(), -1) {
                   @Override
                   public Header getContentType() {
                     return new BasicHeader("Content-Type", contentStream[0].getContentType());
@@ -236,7 +247,7 @@ public class ModifiedHttpSolrServer exte
                   
                 });
               } else {
-                post.setEntity(new InputStreamEntity(contentStream[0].getStream(), -1) {
+                postOrPut.setEntity(new InputStreamEntity(contentStream[0].getStream(), -1) {
                   @Override
                   public Header getContentType() {
                     return new BasicHeader("Content-Type", contentStream[0].getContentType());
@@ -248,7 +259,7 @@ public class ModifiedHttpSolrServer exte
                   }
                 });
               }
-              method = post;
+              method = postOrPut;
             }
           }
           else {
@@ -270,99 +281,13 @@ public class ModifiedHttpSolrServer exte
       throw new SolrServerException("error reading streams", ex);
     }
     
-    // XXX client already has this set, is this needed?
-    //method.getParams().setParameter(ClientPNames.HANDLE_REDIRECTS,
-    //    followRedirects);
-    method.addHeader("User-Agent", AGENT);
-    
-    InputStream respBody = null;
-    boolean shouldClose = true;
-    
-    try {
-      // Execute the method.
-      final HttpResponse response = httpClient.execute(method);
-      int httpStatus = response.getStatusLine().getStatusCode();
-      
-      // Read the contents
-      respBody = response.getEntity().getContent();
-      
-      // handle some http level checks before trying to parse the response
-      switch (httpStatus) {
-        case HttpStatus.SC_OK:
-        case HttpStatus.SC_BAD_REQUEST:
-        case HttpStatus.SC_CONFLICT:  // 409
-          break;
-        case HttpStatus.SC_MOVED_PERMANENTLY:
-        case HttpStatus.SC_MOVED_TEMPORARILY:
-          if (!followRedirects) {
-            throw new SolrServerException("Server at " + getBaseURL()
-                + " sent back a redirect (" + httpStatus + ").");
-          }
-          break;
-        default:
-          throw new SolrException(SolrException.ErrorCode.getErrorCode(httpStatus), "Server at " + getBaseURL()
-              + " returned non ok status:" + httpStatus + ", message:"
-              + response.getStatusLine().getReasonPhrase());
-          
-      }
-      if (processor == null) {
-        // no processor specified, return raw stream
-        NamedList<Object> rsp = new NamedList<Object>();
-        rsp.add("stream", respBody);
-        // Only case where stream should not be closed
-        shouldClose = false;
-        return rsp;
-      }
-      Charset charsetObject = ContentType.getOrDefault(response.getEntity()).getCharset();
-      String charset;
-      if (charsetObject != null)
-        charset = charsetObject.name();
-      else
-        charset = "utf-8";
-      NamedList<Object> rsp = processor.processResponse(respBody, charset);
-      if (httpStatus != HttpStatus.SC_OK) {
-        String reason = null;
-        try {
-          NamedList err = (NamedList) rsp.get("error");
-          if (err != null) {
-            reason = (String) err.get("msg");
-            // TODO? get the trace?
-          }
-        } catch (Exception ex) {}
-        if (reason == null) {
-          StringBuilder msg = new StringBuilder();
-          msg.append(response.getStatusLine().getReasonPhrase());
-          msg.append("\n\n");
-          msg.append("request: " + method.getURI());
-          reason = URLDecoder.decode(msg.toString());
-        }
-        throw new SolrException(
-            SolrException.ErrorCode.getErrorCode(httpStatus), reason);
-      }
-      return rsp;
-    } catch (ConnectException e) {
-      throw new SolrServerException("Server refused connection at: "
-          + getBaseURL(), e);
-    } catch (SocketTimeoutException e) {
-      throw new SolrServerException(
-          "Timeout occured while waiting response from server at: "
-              + getBaseURL(), e);
-    } catch (IOException e) {
-      throw new SolrServerException(
-          "IOException occured when talking to server at: " + getBaseURL(), e);
-    } finally {
-      if (respBody != null && shouldClose) {
-        try {
-          respBody.close();
-        } catch (Throwable t) {} // ignore
-      }
-    }
+    return method;
   }
 
   @Override
-  public void setFollowRedirects(boolean followRedirects) {
-    super.setFollowRedirects(followRedirects);
-    this.followRedirects = followRedirects;
+  public void setMaxRetries(int maxRetries) {
+    super.setMaxRetries(maxRetries);
+    this.maxRetries = maxRetries;
   }
 
   public static String toQueryString( SolrParams params, boolean xml ) {

Copied: manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedLBHttpSolrClient.java (from r1668373, manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedLBHttpSolrServer.java)
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedLBHttpSolrClient.java?p2=manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedLBHttpSolrClient.java&p1=manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedLBHttpSolrServer.java&r1=1668373&r2=1669660&rev=1669660&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedLBHttpSolrServer.java (original)
+++ manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedLBHttpSolrClient.java Fri Mar 27 19:33:37 2015
@@ -16,8 +16,8 @@
  */
 package org.apache.manifoldcf.agents.output.solr;
 
-import org.apache.solr.client.solrj.impl.LBHttpSolrServer;
-import org.apache.solr.client.solrj.impl.HttpSolrServer;
+import org.apache.solr.client.solrj.impl.LBHttpSolrClient;
+import org.apache.solr.client.solrj.impl.HttpSolrClient;
 import org.apache.solr.client.solrj.impl.BinaryResponseParser;
 import org.apache.solr.client.solrj.request.RequestWriter;
 import org.apache.solr.client.solrj.*;
@@ -29,23 +29,23 @@ import java.util.Set;
 * SolrJ LBHttpSolrServer class.  This is so it instantiates our modified
 * HttpSolrServer class, so that multipart forms work.
 */
-public class ModifiedLBHttpSolrServer extends LBHttpSolrServer
+public class ModifiedLBHttpSolrClient extends LBHttpSolrClient
 {
   private final HttpClient httpClient;
   private final ResponseParser parser;
   
-  public ModifiedLBHttpSolrServer(String... solrServerUrls) throws MalformedURLException {
+  public ModifiedLBHttpSolrClient(String... solrServerUrls) throws MalformedURLException {
     this(null, solrServerUrls);
   }
   
   /** The provided httpClient should use a multi-threaded connection manager */ 
-  public ModifiedLBHttpSolrServer(HttpClient httpClient, String... solrServerUrl)
+  public ModifiedLBHttpSolrClient(HttpClient httpClient, String... solrServerUrl)
           throws MalformedURLException {
     this(httpClient, new BinaryResponseParser(), solrServerUrl);
   }
 
   /** The provided httpClient should use a multi-threaded connection manager */  
-  public ModifiedLBHttpSolrServer(HttpClient httpClient, ResponseParser parser, String... solrServerUrl)
+  public ModifiedLBHttpSolrClient(HttpClient httpClient, ResponseParser parser, String... solrServerUrl)
           throws MalformedURLException {
     super(httpClient, parser, solrServerUrl);
     this.httpClient = httpClient;
@@ -53,17 +53,15 @@ public class ModifiedLBHttpSolrServer ex
   }
   
   @Override
-  protected HttpSolrServer makeServer(String server) {
-    HttpSolrServer s = new ModifiedHttpSolrServer(server, httpClient, parser);
-    RequestWriter r = getRequestWriter();
-    Set<String> qp = getQueryParams();
-    if (r != null) {
-      s.setRequestWriter(r);
+  protected HttpSolrClient makeSolrClient(String server) {
+    HttpSolrClient client = new ModifiedHttpSolrClient(server, httpClient, parser);
+    if (getRequestWriter() != null) {
+      client.setRequestWriter(getRequestWriter());
     }
-    if (qp != null) {
-      s.setQueryParams(qp);
+    if (getQueryParams() != null) {
+      client.setQueryParams(getQueryParams());
     }
-    return s;
+    return client;
   }
 
 }

Modified: manifoldcf/trunk/connectors/solr/connector/src/test/java/org/apache/manifoldcf/agents/output/solr/tests/MockSolrService.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/solr/connector/src/test/java/org/apache/manifoldcf/agents/output/solr/tests/MockSolrService.java?rev=1669660&r1=1669659&r2=1669660&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/solr/connector/src/test/java/org/apache/manifoldcf/agents/output/solr/tests/MockSolrService.java (original)
+++ manifoldcf/trunk/connectors/solr/connector/src/test/java/org/apache/manifoldcf/agents/output/solr/tests/MockSolrService.java Fri Mar 27 19:33:37 2015
@@ -107,7 +107,7 @@ public class MockSolrService
       throws IOException
     {
       res.setStatus(HttpServletResponse.SC_OK);
-      res.setContentType("text/xml; charset=utf-8");
+      res.setContentType("application/xml; charset=utf-8");
       res.getWriter().printf("<solr>\n");
       res.getWriter().printf("</solr>\n");
       res.getWriter().flush();
@@ -117,7 +117,7 @@ public class MockSolrService
       throws IOException
     {
       res.setStatus(HttpServletResponse.SC_OK);
-      res.setContentType("text/xml; charset=utf-8");
+      res.setContentType("application/xml; charset=utf-8");
       res.getWriter().printf("<result>\n");
       res.getWriter().printf("  <doc name=\"something\"/>\n");
       res.getWriter().printf("</result>\n");
@@ -128,7 +128,7 @@ public class MockSolrService
       throws IOException
     {
       res.setStatus(HttpServletResponse.SC_OK);
-      res.setContentType("text/xml; charset=utf-8");
+      res.setContentType("application/xml; charset=utf-8");
       res.getWriter().printf("<result>\n");
       res.getWriter().printf("  <doc name=\"something\"/>\n");
       res.getWriter().printf("</result>\n");

Modified: manifoldcf/trunk/pom.xml
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/pom.xml?rev=1669660&r1=1669659&r2=1669660&view=diff
==============================================================================
--- manifoldcf/trunk/pom.xml (original)
+++ manifoldcf/trunk/pom.xml Fri Mar 27 19:33:37 2015
@@ -63,7 +63,7 @@
     <httpcomponent.httpclient.version>4.3.6</httpcomponent.httpclient.version>
     <httpcomponent.httpcore.version>4.3.3</httpcomponent.httpcore.version>
     <httpcomponent.httpmime.version>4.3.6</httpcomponent.httpmime.version>
-    <solr.version>4.10.3</solr.version>
+    <solr.version>5.0.0</solr.version>
     <noggit.version>0.6</noggit.version>
     <commons-el.version>1.0</commons-el.version>
     <commons-lang.version>2.6</commons-lang.version>