@@ -56,6 +56,7 @@ import org.modelix.model.persistent.MapBasedStore
56
56
import org.modelix.model.server.api.v2.VersionDelta
57
57
import org.modelix.modelql.client.ModelQLClient
58
58
import org.modelix.modelql.core.IMonoStep
59
+ import kotlin.time.Duration
59
60
import kotlin.time.Duration.Companion.seconds
60
61
61
62
class ModelClientV2 (
@@ -338,6 +339,8 @@ abstract class ModelClientV2Builder {
338
339
protected var baseUrl: String = " https://localhost/model/v2"
339
340
protected var authTokenProvider: (() -> String? )? = null
340
341
protected var userId: String? = null
342
+ protected var connectTimeout: Duration = 1 .seconds
343
+ protected var requestTimeout: Duration = 30 .seconds
341
344
342
345
fun build (): ModelClientV2 {
343
346
return ModelClientV2 (
@@ -367,6 +370,16 @@ abstract class ModelClientV2Builder {
367
370
return this
368
371
}
369
372
373
+ fun connectTimeout (timeout : Duration ): ModelClientV2Builder {
374
+ this .connectTimeout = timeout
375
+ return this
376
+ }
377
+
378
+ fun requestTimeout (timeout : Duration ): ModelClientV2Builder {
379
+ this .requestTimeout = timeout
380
+ return this
381
+ }
382
+
370
383
protected open fun configureHttpClient (config : HttpClientConfig <* >) {
371
384
config.apply {
372
385
expectSuccess = true
@@ -375,8 +388,8 @@ abstract class ModelClientV2Builder {
375
388
json()
376
389
}
377
390
install(HttpTimeout ) {
378
- connectTimeoutMillis = 1 .seconds .inWholeMilliseconds
379
- requestTimeoutMillis = 30 .seconds .inWholeMilliseconds
391
+ connectTimeoutMillis = connectTimeout .inWholeMilliseconds
392
+ requestTimeoutMillis = requestTimeout .inWholeMilliseconds
380
393
}
381
394
install(HttpRequestRetry ) {
382
395
retryOnExceptionOrServerErrors(maxRetries = 3 )
0 commit comments