/** * Remove river * * @param river */ public void remove(T river) { if (logger.isDebugEnabled()) logger.debug("remove({})", river); // We stop the river if running if (riverService.checkState(river)) { riverService.stop(river); } // We remove the river in the database client .prepareDelete( SMDSearchProperties.ES_META_INDEX, SMDSearchProperties.ES_META_RIVERS, river.getId()) .execute() .actionGet(); if (logger.isDebugEnabled()) logger.debug("/remove({})", river); }
/** * Get all active rivers * * @return */ public List<T> get() { if (logger.isDebugEnabled()) logger.debug("get()"); List<T> rivers = new ArrayList<T>(); SearchRequestBuilder srb = new SearchRequestBuilder(client); try { srb.setIndices(SMDSearchProperties.ES_META_INDEX); srb.setTypes(SMDSearchProperties.ES_META_RIVERS); SearchResponse response = srb.execute().actionGet(); if (response.getHits().totalHits() > 0) { for (int i = 0; i < response.getHits().hits().length; i++) { T river = buildInstance(); SearchHit hit = response.getHits().hits()[i]; // We only manage rivers for type getHelper().type() river = getHelper().toRiver(river, hit.sourceAsMap()); if (river.getType().equals(getHelper().type())) { // For each river, we check if the river is started or not river.setStart(riverService.checkState(river)); rivers.add(river); } } } } catch (IndexMissingException e) { // That's a common use case. We started with an empty index } if (logger.isDebugEnabled()) logger.debug("/get()={}", rivers); return rivers; }