in streams-components/streams-http/src/main/java/org/apache/streams/components/http/processor/SimpleHTTPPostProcessor.java [155:221]
public List<StreamsDatum> process(StreamsDatum entry) {
List<StreamsDatum> result = new ArrayList<>();
ObjectNode rootDocument = getRootDocument(entry);
Map<String, String> params = prepareParams(entry);
URI uri;
for ( Map.Entry<String,String> param : params.entrySet() ) {
uriBuilder = uriBuilder.setParameter(param.getKey(), param.getValue());
}
try {
uri = uriBuilder.build();
} catch (URISyntaxException ex) {
LOGGER.error("URI error {}", uriBuilder.toString(), ex);
return result;
}
HttpEntity payload = preparePayload(entry);
HttpPost httpPost = prepareHttpPost(uri, payload);
CloseableHttpResponse response = null;
String entityString = null;
try {
response = httpclient.execute(httpPost);
HttpEntity entity = response.getEntity();
// TODO: handle retry
if (response.getStatusLine().getStatusCode() == 200 && entity != null) {
entityString = EntityUtils.toString(entity);
}
} catch (IOException ex) {
LOGGER.error("IO error:\n{}\n{}\n{}", uri.toString(), response, ex);
return result;
} finally {
try {
if (response != null) {
response.close();
}
} catch (IOException ignored) {
LOGGER.trace("IOException", ignored);
}
}
if ( entityString == null ) {
return result;
}
LOGGER.debug(entityString);
ObjectNode extensionFragment = prepareExtensionFragment(entityString);
ActivityObject extensionEntity = getEntityToExtend(rootDocument);
ExtensionUtil.getInstance().addExtension(extensionEntity, this.configuration.getExtension(), extensionFragment);
rootDocument = setEntityToExtend(rootDocument, extensionEntity);
entry.setDocument(rootDocument);
result.add(entry);
return result;
}