@Override
  protected void doWrites(
      Client client,
      boolean isImmediate,
      List<State> saves,
      List<State> indexes,
      List<State> deletes)
      throws Exception {
    BulkRequestBuilder bulk = client.prepareBulk();
    String indexName = getIndexName();

    if (saves != null) {
      for (State state : saves) {
        bulk.add(
            client
                .prepareIndex(indexName, state.getTypeId().toString(), state.getId().toString())
                .setSource(state.getSimpleValues()));
      }
    }

    if (deletes != null) {
      for (State state : deletes) {
        bulk.add(
            client.prepareDelete(
                indexName, state.getTypeId().toString(), state.getId().toString()));
      }
    }

    bulk.execute().actionGet();
  }
Beispiel #2
0
  /**
   * Synchronizes the given {@code plugin} with the existing one in the database if it can be found.
   */
  private void synchronizePlugin(Plugin plugin) {

    State pluginState = plugin.getState();
    Database database = getState().getDatabase();
    pluginState.setDatabase(database);

    UUID typeId = pluginState.getTypeId();
    Tool tool = plugin.getTool();
    String internalName = plugin.getInternalName();

    for (Plugin p : getAllPlugins(database)) {
      if (ObjectUtils.equals(typeId, p.getState().getTypeId())
          && ObjectUtils.equals(tool, p.getTool())
          && ObjectUtils.equals(internalName, p.getInternalName())) {
        pluginState.setId(p.getId());
        break;
      }
    }
  }