Skip to content

Commit 8a3595d

Browse files
committed
fix(java): forward custom timeout to requester
1 parent 76a16db commit 8a3595d

File tree

13 files changed

+97
-32
lines changed

13 files changed

+97
-32
lines changed

clients/algoliasearch-client-java/algoliasearch/src/main/java/com/algolia/ApiClient.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,9 @@ private Requester defaultRequester(
7979
.addInterceptor(authInterceptor)
8080
.addInterceptor(new UserAgentInterceptor(algoliaAgent))
8181
.addInterceptor(new RetryStrategy(statefulHosts))
82-
.setConnectTimeout(connectTimeout)
83-
.setReadTimeout(readTimeout)
84-
.setWriteTimeout(writeTimeout);
82+
.setConnectTimeout(options.getConnectTimeout() != null ? options.getConnectTimeout() : connectTimeout)
83+
.setReadTimeout(options.getReadTimeout() != null ? options.getReadTimeout() : readTimeout)
84+
.setWriteTimeout(options.getWriteTimeout() != null ? options.getWriteTimeout() : writeTimeout);
8585
if (options.getRequesterConfig() != null) {
8686
options.getRequesterConfig().accept(builder);
8787
}

generators/src/main/java/com/algolia/codegen/cts/tests/TestsClient.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,16 +89,24 @@ public void run(Map<String, CodegenModel> models, Map<String, CodegenOperation>
8989
stepOut.put("isCreateClient", true); // TODO: remove once kotlin is converted
9090

9191
boolean hasCustomHosts = step.parameters != null && step.parameters.containsKey("customHosts");
92-
if (hasCustomHosts) testOut.put("useEchoRequester", false);
9392
stepOut.put("hasCustomHosts", hasCustomHosts);
9493
if (hasCustomHosts) {
94+
testOut.put("useEchoRequester", false);
9595
stepOut.put("customHosts", step.parameters.get("customHosts"));
9696
}
9797

98+
boolean hasCustomWriteTimeout = step.parameters != null && step.parameters.containsKey("writeTimeout");
99+
stepOut.put("hasCustomWriteTimeout", hasCustomWriteTimeout);
100+
if (hasCustomWriteTimeout) {
101+
stepOut.put("writeTimeout", step.parameters.get("writeTimeout"));
102+
}
103+
104+
stepOut.put("hasCustomClientCreate", hasCustomWriteTimeout || hasCustomHosts);
105+
98106
boolean hasTransformationRegion = step.parameters != null && step.parameters.containsKey("transformationRegion");
99-
if (hasTransformationRegion) testOut.put("useEchoRequester", false);
100107
stepOut.put("hasTransformationRegion", hasTransformationRegion);
101108
if (hasTransformationRegion) {
109+
testOut.put("useEchoRequester", false);
102110
stepOut.put("transformationRegion", step.parameters.get("transformationRegion"));
103111
}
104112

templates/csharp/tests/client/createClient.mustache

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
{{#hasCustomHosts}}
1+
{{#hasCustomClientCreate}}
22
{{clientPrefix}}Config _config = new {{clientPrefix}}Config("{{parametersWithDataTypeMap.appId.value}}","{{parametersWithDataTypeMap.apiKey.value}}"{{#hasRegionalHost}}{{#parametersWithDataTypeMap.region}},"{{parametersWithDataTypeMap.region.value}}"{{/parametersWithDataTypeMap.region}}{{/hasRegionalHost}}) {
3+
{{#hasCustomHosts}}
34
CustomHosts = new List<StatefulHost>
45
{
56
{{#customHosts}}new () {
@@ -11,8 +12,12 @@
1112
Accept = CallType.Read | CallType.Write,
1213
}{{^-last}},{{/-last}}{{/customHosts}}
1314
}{{#gzipEncoding}},Compression = CompressionType.Gzip{{/gzipEncoding}}
15+
{{/hasCustomHosts}}
16+
{{#hasCustomWriteTimeout}}
17+
WriteTimeout = {{writeTimeout}}
18+
{{/hasCustomWriteTimeout}}
1419
};
1520
{{^autoCreateClient}}var client = {{/autoCreateClient}}new {{client}}(_config);
16-
{{/hasCustomHosts}}
21+
{{/hasCustomClientCreate}}
1722
{{#useEchoRequester}}
1823
{{^autoCreateClient}}var client = {{/autoCreateClient}}new {{client}}(new {{clientPrefix}}Config("{{parametersWithDataTypeMap.appId.value}}","{{parametersWithDataTypeMap.apiKey.value}}"{{#hasRegionalHost}}{{#parametersWithDataTypeMap.region}},"{{parametersWithDataTypeMap.region.value}}"{{/parametersWithDataTypeMap.region}}{{/hasRegionalHost}}), _echo);{{/useEchoRequester}}

templates/go/tests/client/createClient.mustache

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ cfg = {{clientPrefix}}.{{clientName}}Configuration{
88
{{#hasCustomHosts}}
99
Hosts: []transport.StatefulHost{ {{#customHosts}}transport.NewStatefulHost("http", tests.GetLocalhost() + ":{{port}}", call.IsReadWrite),{{/customHosts}} },
1010
{{/hasCustomHosts}}
11+
{{#hasCustomWriteTimeout}}
12+
WriteTimeout: {{writeTimeout}},
13+
{{/hasCustomWriteTimeout}}
1114
{{#gzipEncoding}}
1215
Compression: compression.GZIP,
1316
{{/gzipEncoding}}

templates/javascript/tests/client/createClient.mustache

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
{{/customHosts}}
2020
],
2121
{{/hasCustomHosts}}
22+
{{#hasCustomWriteTimeout}}
23+
writeTimeout: {{writeTimeout}},
24+
{{/hasCustomWriteTimeout}}
2225
{{#hasTransformationRegion}}
2326
transformation: { region : "{{{transformationRegion}}}" },
2427
{{/hasTransformationRegion}}
@@ -41,7 +44,10 @@
4144
},
4245
{{/customHosts}}
4346
]
44-
{{/hasCustomHosts}}
47+
{{/hasCustomHosts}}
48+
{{#hasCustomWriteTimeout}}
49+
writeTimeout: {{writeTimeout}},
50+
{{/hasCustomWriteTimeout}}
4551
},
4652
{{#hasRegionalHost}}
4753
// @ts-ignore
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{{^autoCreateClient}}val client = {{/autoCreateClient}}{{client}}(appId = "{{parametersWithDataTypeMap.appId.value}}", apiKey = "{{parametersWithDataTypeMap.apiKey.value}}",{{#hasRegionalHost}}{{#parametersWithDataTypeMap.region}}"{{parametersWithDataTypeMap.region.value}}",{{/parametersWithDataTypeMap.region}}{{/hasRegionalHost}}{{#hasCustomHosts}}options = ClientOptions(hosts = listOf({{#customHosts}}Host(url = if (System.getenv("CI") == "true") "localhost" else "host.docker.internal", protocol = "http", port = {{port}}){{^-last}},{{/-last}}{{/customHosts}}){{#gzipEncoding}}, compressionType = CompressionType.GZIP{{/gzipEncoding}}){{/hasCustomHosts}})
1+
{{^autoCreateClient}}val client = {{/autoCreateClient}}{{client}}(appId = "{{parametersWithDataTypeMap.appId.value}}", apiKey = "{{parametersWithDataTypeMap.apiKey.value}}",{{#hasRegionalHost}}{{#parametersWithDataTypeMap.region}}"{{parametersWithDataTypeMap.region.value}}",{{/parametersWithDataTypeMap.region}}{{/hasRegionalHost}}{{#hasCustomClientCreate}}options = ClientOptions({{#hasCustomHosts}}hosts = listOf({{#customHosts}}Host(url = if (System.getenv("CI") == "true") "localhost" else "host.docker.internal", protocol = "http", port = {{port}}){{^-last}},{{/-last}}{{/customHosts}}){{/hasCustomHosts}}{{#hasCustomWriteTimeout}} writeTimeout = {{writeTimeout}}{{/hasCustomWriteTimeout}}{{#gzipEncoding}}, compressionType = CompressionType.GZIP{{/gzipEncoding}}){{/hasCustomClientCreate}})

templates/php/tests/client/createClient.mustache

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ $client = $this->createClient(
44
{{#parametersWithDataTypeMap.apiKey}}"{{parametersWithDataTypeMap.apiKey.value}}"{{/parametersWithDataTypeMap.apiKey}}{{^parametersWithDataTypeMap.apiKey}}null{{/parametersWithDataTypeMap.apiKey}}{{#hasRegionalHost}},
55
{{#parametersWithDataTypeMap.region}}"{{parametersWithDataTypeMap.region.value}}"{{/parametersWithDataTypeMap.region}}{{^parametersWithDataTypeMap.region}}null{{/parametersWithDataTypeMap.region}}{{/hasRegionalHost}}
66
);
7-
{{^isError}}$this->assertIsObject($client);{{/isError}}{{/useEchoRequester}}{{^hasTransformationRegion}}{{#hasCustomHosts}}
8-
$client = {{client}}::createWithConfig({{clientPrefix}}Config::create("{{parametersWithDataTypeMap.appId.value}}","{{parametersWithDataTypeMap.apiKey.value}}"{{#hasRegionalHost}}{{#parametersWithDataTypeMap.region}},"{{parametersWithDataTypeMap.region.value}}"{{/parametersWithDataTypeMap.region}}{{/hasRegionalHost}})->setFullHosts([{{#customHosts}}"http://" . (getenv("CI") == "true" ? "localhost" : "host.docker.internal") . ":{{port}}"{{^-last}},{{/-last}}{{/customHosts}}]));
9-
{{/hasCustomHosts}}{{/hasTransformationRegion}}
7+
{{^isError}}$this->assertIsObject($client);{{/isError}}{{/useEchoRequester}}{{^hasTransformationRegion}}{{#hasCustomClientCreate}}
8+
$client = {{client}}::createWithConfig({{clientPrefix}}Config::create("{{parametersWithDataTypeMap.appId.value}}","{{parametersWithDataTypeMap.apiKey.value}}"{{#hasRegionalHost}}{{#parametersWithDataTypeMap.region}},"{{parametersWithDataTypeMap.region.value}}"{{/parametersWithDataTypeMap.region}}{{/hasRegionalHost}}){{#hasCustomHosts}}->setFullHosts([{{#customHosts}}"http://" . (getenv("CI") == "true" ? "localhost" : "host.docker.internal") . ":{{port}}"{{^-last}},{{/-last}}{{/customHosts}}]){{/hasCustomHosts}}{{#hasCustomWriteTimeout}}->setWriteTimeout({{writeTimeout}}){{/hasCustomWriteTimeout}});
9+
{{/hasCustomClientCreate}}{{/hasTransformationRegion}}
1010
{{#hasTransformationRegion}}
1111
$client = {{client}}::createWithConfig({{clientPrefix}}Config::create("{{parametersWithDataTypeMap.appId.value}}","{{parametersWithDataTypeMap.apiKey.value}}")->setFullHosts([{{#customHosts}}"http://" . (getenv("CI") == "true" ? "localhost" : "host.docker.internal") . ":{{port}}"{{^-last}},{{/-last}}{{/customHosts}}])->setTransformationRegion("{{{transformationRegion}}}"));
1212
{{/hasTransformationRegion}}

templates/python/tests/client/createClient.mustache

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ _config = {{#lambda.pascalcase}}{{clientPrefix}}Config{{/lambda.pascalcase}}("{{
22
{{#hasCustomHosts}}
33
{{#isError}} {{/isError}}_config.hosts = HostsCollection([{{#customHosts}}Host(url='localhost' if environ.get('CI') == 'true' else 'host.docker.internal', scheme='http', port={{port}}){{^-last}},{{/-last}}{{/customHosts}}])
44
{{/hasCustomHosts}}
5+
{{#hasCustomWriteTimeout}}
6+
{{#isError}} {{/isError}}_config.write_timeout = {{writeTimeout}}
7+
{{/hasCustomWriteTimeout}}
58
{{#hasTransformationRegion}}
69
{{#isError}} {{/isError}}_config.set_transformation_region("{{{transformationRegion}}}")
710
{{/hasTransformationRegion}}
Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
1-
{{#hasCustomHosts}}
1+
{{#hasCustomClientCreate}}
22
client = Algolia::{{#lambda.pascalcase}}{{{client}}}{{/lambda.pascalcase}}.create_with_config(Algolia::Configuration.new(
33
'{{parametersWithDataTypeMap.appId.value}}',
44
'{{parametersWithDataTypeMap.apiKey.value}}',
5+
{{#hasCustomHosts}}
56
[{{#customHosts}}Algolia::Transport::StatefulHost.new(ENV.fetch('CI', nil) == 'true' ? 'localhost' : 'host.docker.internal', protocol: 'http://', port: {{port}}, accept: CallType::READ | CallType::WRITE),{{/customHosts}}],
7+
{{/hasCustomHosts}}
68
'{{client}}'{{#gzipEncoding}},
79
compression_type: 'gzip'{{/gzipEncoding}}
8-
)){{/hasCustomHosts}}{{^hasCustomHosts}}
10+
{{#hasCustomWriteTimeout}},write_timeout: {{writeTimeout}}{{/hasCustomWriteTimeout}}
11+
)){{/hasCustomClientCreate}}{{^hasCustomClientCreate}}
912
{{^isError}}client = {{/isError}}Algolia::{{#lambda.pascalcase}}{{{client}}}{{/lambda.pascalcase}}.create(
1013
'{{parametersWithDataTypeMap.appId.value}}',
1114
'{{parametersWithDataTypeMap.apiKey.value}}',
1215
{{#hasRegionalHost}}{{#parametersWithDataTypeMap.region}}'{{parametersWithDataTypeMap.region.value}}',{{/parametersWithDataTypeMap.region}}{{/hasRegionalHost}}
1316
{ requester: Algolia::Transport::EchoRequester.new }
14-
){{/hasCustomHosts}}
17+
){{/hasCustomClientCreate}}
Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
11
{{#useEchoRequester}}
2-
val (client, echo) = testClient(appId = "{{parametersWithDataTypeMap.appId.value}}", apiKey = "{{parametersWithDataTypeMap.apiKey.value}}"{{#hasRegionalHost}}{{#parametersWithDataTypeMap.region}}, region = "{{value}}"{{/parametersWithDataTypeMap.region}}{{/hasRegionalHost}}){{/useEchoRequester}}{{#hasCustomHosts}}
2+
val (client, echo) = testClient(appId = "{{parametersWithDataTypeMap.appId.value}}", apiKey = "{{parametersWithDataTypeMap.apiKey.value}}"{{#hasRegionalHost}}{{#parametersWithDataTypeMap.region}}, region = "{{value}}"{{/parametersWithDataTypeMap.region}}{{/hasRegionalHost}}){{/useEchoRequester}}{{#hasCustomClientCreate}}
33
val client = {{client}}(
44
appId = "{{parametersWithDataTypeMap.appId.value}}",
55
apiKey = "{{parametersWithDataTypeMap.apiKey.value}}",
66
{{#hasRegionalHost}}{{#parametersWithDataTypeMap.region}} region = {{#fallbackToAliasHost}}Option({{/fallbackToAliasHost}}"{{value}}"{{#fallbackToAliasHost}}){{/fallbackToAliasHost}},{{/parametersWithDataTypeMap.region}}{{/hasRegionalHost}}
77
clientOptions = ClientOptions
88
.builder()
9+
{{#hasCustomHosts}}
910
.withHosts(List({{#customHosts}}Host(if (System.getenv("CI") == "true") "localhost" else "host.docker.internal", Set(CallType.Read, CallType.Write), "http", Option({{port}})){{^-last}},{{/-last}}{{/customHosts}}))
11+
{{/hasCustomHosts}}
1012
{{#gzipEncoding}}.withCompressionType(CompressionType.Gzip){{/gzipEncoding}}
13+
{{#hasCustomWriteTimeout}}
14+
.withWriteTimeout({{writeTimeout}})
15+
{{/hasCustomWriteTimeout}}
1116
.build()
1217
)
13-
{{/hasCustomHosts}}
18+
{{/hasCustomClientCreate}}

0 commit comments

Comments
 (0)