Author: kwright
Date: Sun Jun 22 13:08:03 2014
New Revision: 1604566
URL: http://svn.apache.org/r1604566
Log:
Modify so there's a content length
Modified:
manifoldcf/trunk/connectors/amazoncloudsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/amazoncloudsearch/AmazonCloudSearchConnector.java
Modified:
manifoldcf/trunk/connectors/amazoncloudsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/amazoncloudsearch/AmazonCloudSearchConnector.java
URL:
http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/amazoncloudsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/amazoncloudsearch/AmazonCloudSearchConnector.java?rev=1604566&r1=1604565&r2=1604566&view=diff
==============================================================================
---
manifoldcf/trunk/connectors/amazoncloudsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/amazoncloudsearch/AmazonCloudSearchConnector.java
(original)
+++
manifoldcf/trunk/connectors/amazoncloudsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/amazoncloudsearch/AmazonCloudSearchConnector.java
Sun Jun 22 13:08:03 2014
@@ -66,6 +66,8 @@ import org.apache.manifoldcf.core.interf
import org.apache.manifoldcf.core.interfaces.IPostParameters;
import org.apache.manifoldcf.core.interfaces.IPasswordMapperActivity;
import org.apache.manifoldcf.core.interfaces.SpecificationNode;
+import org.apache.manifoldcf.core.interfaces.BinaryInput;
+import org.apache.manifoldcf.core.interfaces.TempFileInput;
import org.apache.manifoldcf.agents.system.ManifoldCF;
import org.apache.manifoldcf.agents.system.Logging;
@@ -245,6 +247,7 @@ public class AmazonCloudSearchConnector
public String check() throws ManifoldCFException {
try {
getSession();
+ String responseBody;
String responsbody = postData(new ReaderInputStream(new
StringReader("[]"),Consts.UTF_8));
String status = "";
try
@@ -316,6 +319,15 @@ public class AmazonCloudSearchConnector
return null;
}
+ private final static Set<String> acceptableMimeTypes = new HashSet<String>();
+ static
+ {
+ acceptableMimeTypes.add("text/plain;charset=utf-8");
+ acceptableMimeTypes.add("text/plain;charset=ascii");
+ acceptableMimeTypes.add("text/plain;charset=us-ascii");
+ acceptableMimeTypes.add("text/plain");
+ }
+
/** Detect if a mime type is indexable or not. This method is used by
participating repository connectors to pre-filter the number of
* unusable documents that will be passed to this output connector.
*@param outputDescription is the document's output version.
@@ -326,7 +338,7 @@ public class AmazonCloudSearchConnector
public boolean checkMimeTypeIndexable(String outputDescription, String
mimeType)
throws ManifoldCFException, ServiceInterruption
{
- return
mimeType.toLowerCase(Locale.ROOT).equals("text/plain;charset=utf-8");
+ return acceptableMimeTypes.contains(mimeType.toLowerCase(Locale.ROOT));
}
/** Add (or replace) a document in the output data store using the connector.
@@ -668,11 +680,19 @@ public class AmazonCloudSearchConnector
private String postData(InputStream jsonData) throws ServiceInterruption,
ManifoldCFException {
CloseableHttpClient httpclient = HttpClients.createDefault();
try {
- poster.setEntity(new InputStreamEntity(jsonData));
- HttpResponse res = httpclient.execute(poster);
-
- HttpEntity resEntity = res.getEntity();
- return EntityUtils.toString(resEntity);
+ BinaryInput bi = new TempFileInput(jsonData);
+ try
+ {
+ poster.setEntity(new InputStreamEntity(bi.getStream(),bi.getLength()));
+ HttpResponse res = httpclient.execute(poster);
+
+ HttpEntity resEntity = res.getEntity();
+ return EntityUtils.toString(resEntity);
+ }
+ finally
+ {
+ bi.discard();
+ }
} catch (ClientProtocolException e) {
throw new ManifoldCFException(e);
} catch (IOException e) {