public List process()

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;

  }