Github user ricellis commented on a diff in the pull request: https://github.com/apache/bahir/pull/61#discussion_r160470451 --- Diff: sql-cloudant/src/main/scala/org/apache/bahir/cloudant/CloudantConfig.scala --- @@ -16,34 +16,127 @@ */ package org.apache.bahir.cloudant -import java.net.URLEncoder +import java.net.{URL, URLEncoder} -import play.api.libs.json.{JsArray, JsObject, Json, JsValue} +import scala.collection.JavaConverters._ +import scala.collection.mutable +import scala.reflect.io.File + +import com.cloudant.client.api.{ClientBuilder, CloudantClient, Database} +import com.cloudant.client.api.model.SearchResult +import com.cloudant.client.api.views._ +import com.cloudant.http.{Http, HttpConnection} +import com.cloudant.http.interceptors.Replay429Interceptor +import com.google.gson.{JsonObject, JsonParser} import org.apache.bahir.cloudant.common._ +import org.apache.bahir.cloudant.common.JsonUtil.JsonConverter /* * Only allow one field pushdown now * as the filter today does not tell how to link the filters out And v.s. Or */ class CloudantConfig(val protocol: String, val host: String, - val dbName: String, val indexName: String, val viewName: String) + val dbName: String, val indexPath: String, val viewPath: String) (implicit val username: String, val password: String, val partitions: Int, val maxInPartition: Int, val minInPartition: Int, val requestTimeout: Long, val bulkSize: Int, val schemaSampleSize: Int, val createDBOnSave: Boolean, val endpoint: String, val useQuery: Boolean = false, val queryLimit: Int) extends Serializable { + @transient private lazy val client: CloudantClient = ClientBuilder + .url(getClientUrl) + .username(username) + .password(password) + .interceptors(Replay429Interceptor.WITH_DEFAULTS) --- End diff -- Also the defaults may be insufficient for some use cases. It may be worth exposing config option(s) for at least the number of retries if not the backoff.
---