Github user nickwallen commented on a diff in the pull request:

    https://github.com/apache/metron/pull/1247#discussion_r236771158
  
    --- Diff: 
metron-platform/metron-elasticsearch/src/test/java/org/apache/metron/elasticsearch/integration/components/ElasticSearchComponent.java
 ---
    @@ -194,35 +215,41 @@ public Client getClient() {
         return client;
       }
     
    -  public BulkResponse add(String indexName, String sensorType, String... 
docs) throws IOException {
    +  public void add(UpdateDao updateDao, String indexName, String 
sensorType, String... docs)
    +          throws IOException, ParseException {
         List<String> d = new ArrayList<>();
         Collections.addAll(d, docs);
    -    return add(indexName, sensorType, d);
    +    add(updateDao, indexName, sensorType, d);
       }
     
    -  public BulkResponse add(String indexName, String sensorType, 
Iterable<String> docs)
    -      throws IOException {
    -    BulkRequestBuilder bulkRequest = getClient().prepareBulk();
    -    for (String doc : docs) {
    -      IndexRequestBuilder indexRequestBuilder = getClient()
    -          .prepareIndex(indexName, sensorType + "_doc");
    -
    -      indexRequestBuilder = indexRequestBuilder.setSource(doc);
    -      Map<String, Object> esDoc = JSONUtils.INSTANCE
    -          .load(doc, JSONUtils.MAP_SUPPLIER);
    -      indexRequestBuilder.setId((String) esDoc.get(Constants.GUID));
    -      Object ts = esDoc.get("timestamp");
    -      if (ts != null) {
    -        indexRequestBuilder = 
indexRequestBuilder.setTimestamp(ts.toString());
    -      }
    -      bulkRequest.add(indexRequestBuilder);
    -    }
    +  public void add(UpdateDao updateDao, String indexName, String 
sensorType, Iterable<String> docs)
    --- End diff --
    
    > To that end, if we're looking to route all of this through the ES 
component in that fashion, it might make sense to simply replace the internal 
private Client client; and instead use the new desired IndexDao for the proxied 
calls to ES.
    
    I don't think we're ready to do all that quite yet.  There is still some 
legacy functionality in `ElasticSearchComponent` that uses the underlying 
client for the old Admin API.  See 
[close](https://github.com/apache/metron/blob/fcd644ca77394d48d460c460b672a23d6594f49b/metron-platform/metron-elasticsearch/src/test/java/org/apache/metron/elasticsearch/integration/components/ElasticSearchComponent.java#L292),
 
[createIndexWithMapping](https://github.com/apache/metron/blob/fcd644ca77394d48d460c460b672a23d6594f49b/metron-platform/metron-elasticsearch/src/test/java/org/apache/metron/elasticsearch/integration/components/ElasticSearchComponent.java#L228),
 and 
[start](https://github.com/apache/metron/blob/fcd644ca77394d48d460c460b672a23d6594f49b/metron-platform/metron-elasticsearch/src/test/java/org/apache/metron/elasticsearch/integration/components/ElasticSearchComponent.java#L153).


---

Reply via email to