package org.gbif.occurrence.cli.index;
import org.gbif.common.messaging.config.MessagingConfiguration;
import org.gbif.occurrence.cli.common.GangliaConfiguration;
import javax.validation.Valid;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import com.beust.jcommander.Parameter;
import com.beust.jcommander.ParametersDelegate;
import com.google.common.base.Objects;
/**
* Configuration for indexing jobs that process updates, deletions and insertions.
*/
class IndexingConfiguration {
@ParametersDelegate
@Valid
@NotNull
public MessagingConfiguration messaging = new MessagingConfiguration();
@ParametersDelegate
@Valid
@NotNull
public GangliaConfiguration ganglia = new GangliaConfiguration();
@Parameter(names = "--messaging-pool-size")
@Min(1)
public int poolSize = 5;
@Parameter(names = "--commit-within")
@NotNull
public int commitWithinMs = 120000;
@Parameter(names = "--queue-name")
@NotNull
public String queueName;
@Parameter(names = "--solr-server")
@NotNull
public String solrServer;
@Parameter(names = "--solr-server-type")
@NotNull
public String solrServerType;
@Parameter(names = "--solr-collection")
@NotNull
public String solrCollection;
@Override
public String toString() {
return Objects.toStringHelper(this).add("messaging", messaging).add("ganglia", ganglia).add("poolSize", poolSize)
.add("commitWithinMs", commitWithinMs).add("queueName", queueName).add("solrServer", solrServer)
.add("solrServerType", solrServerType).add("solrCollection", solrCollection).toString();
}
}