reuse Configuration.defaultApiClientin no-arg Api ctors and make ref volatile (fixes issue #20633) (#20635)

* made Configuration.defaultApiClient volatile so that if it's changed the new value is immediately visible to all other threads

* made no-arg api ctor use Configuration.getDefaultApiClient() instead of creating new ApiClient every time

* replaced all use of URLEncoder.encode with ApiClient.urlEncode; just code cleanup; no functional changes

* disabled AbstractJavaCodegenTest.testGeneratedExampleValues as it fails, possibly due to timezone (Locale.ROOT) of local system

* replaced thread-unsafe SimpleDateFormat with DateTimeFormatter and re-enabled unit-test

* removed unused import

* ran the generate-sample scripts and generated a HUGE number of changes!

* added missing import of Configuration to api.mustache (and, thus, all native samples)

* added missing import for ApiClient to anyof and oneof model mustaches
This commit is contained in:
Ron Reynolds
2025-02-18 22:47:55 -08:00
committed by GitHub
parent c349270c7a
commit eb668b6a76
215 changed files with 517 additions and 469 deletions

View File

@@ -17,7 +17,7 @@ package org.openapitools.client;
public class Configuration {
public static final String VERSION = "0.1.0";
private static ApiClient defaultApiClient = new ApiClient();
private static volatile ApiClient defaultApiClient = new ApiClient();
/**
* Get the default API client, which would be used when creating API

View File

@@ -17,7 +17,7 @@ package org.openapitools.client;
public class Configuration {
public static final String VERSION = "0.1.0";
private static ApiClient defaultApiClient = new ApiClient();
private static volatile ApiClient defaultApiClient = new ApiClient();
/**
* Get the default API client, which would be used when creating API

View File

@@ -15,6 +15,7 @@ package org.openapitools.client.api;
import org.openapitools.client.ApiClient;
import org.openapitools.client.ApiException;
import org.openapitools.client.ApiResponse;
import org.openapitools.client.Configuration;
import org.openapitools.client.Pair;
@@ -54,7 +55,7 @@ public class AuthApi {
private final Consumer<HttpResponse<String>> memberVarAsyncResponseInterceptor;
public AuthApi() {
this(new ApiClient());
this(Configuration.getDefaultApiClient());
}
public AuthApi(ApiClient apiClient) {

View File

@@ -15,6 +15,7 @@ package org.openapitools.client.api;
import org.openapitools.client.ApiClient;
import org.openapitools.client.ApiException;
import org.openapitools.client.ApiResponse;
import org.openapitools.client.Configuration;
import org.openapitools.client.Pair;
import java.io.File;
@@ -64,7 +65,7 @@ public class BodyApi {
private final Consumer<HttpResponse<String>> memberVarAsyncResponseInterceptor;
public BodyApi() {
this(new ApiClient());
this(Configuration.getDefaultApiClient());
}
public BodyApi(ApiClient apiClient) {

View File

@@ -15,6 +15,7 @@ package org.openapitools.client.api;
import org.openapitools.client.ApiClient;
import org.openapitools.client.ApiException;
import org.openapitools.client.ApiResponse;
import org.openapitools.client.Configuration;
import org.openapitools.client.Pair;
import org.openapitools.client.model.TestFormObjectMultipartRequestMarker;
@@ -61,7 +62,7 @@ public class FormApi {
private final Consumer<HttpResponse<String>> memberVarAsyncResponseInterceptor;
public FormApi() {
this(new ApiClient());
this(Configuration.getDefaultApiClient());
}
public FormApi(ApiClient apiClient) {

View File

@@ -15,6 +15,7 @@ package org.openapitools.client.api;
import org.openapitools.client.ApiClient;
import org.openapitools.client.ApiException;
import org.openapitools.client.ApiResponse;
import org.openapitools.client.Configuration;
import org.openapitools.client.Pair;
import org.openapitools.client.model.StringEnumRef;
@@ -61,7 +62,7 @@ public class HeaderApi {
private final Consumer<HttpResponse<String>> memberVarAsyncResponseInterceptor;
public HeaderApi() {
this(new ApiClient());
this(Configuration.getDefaultApiClient());
}
public HeaderApi(ApiClient apiClient) {

View File

@@ -15,6 +15,7 @@ package org.openapitools.client.api;
import org.openapitools.client.ApiClient;
import org.openapitools.client.ApiException;
import org.openapitools.client.ApiResponse;
import org.openapitools.client.Configuration;
import org.openapitools.client.Pair;
import org.openapitools.client.model.StringEnumRef;
@@ -61,7 +62,7 @@ public class PathApi {
private final Consumer<HttpResponse<String>> memberVarAsyncResponseInterceptor;
public PathApi() {
this(new ApiClient());
this(Configuration.getDefaultApiClient());
}
public PathApi(ApiClient apiClient) {

View File

@@ -15,6 +15,7 @@ package org.openapitools.client.api;
import org.openapitools.client.ApiClient;
import org.openapitools.client.ApiException;
import org.openapitools.client.ApiResponse;
import org.openapitools.client.Configuration;
import org.openapitools.client.Pair;
import org.openapitools.client.model.DataQuery;
@@ -67,7 +68,7 @@ public class QueryApi {
private final Consumer<HttpResponse<String>> memberVarAsyncResponseInterceptor;
public QueryApi() {
this(new ApiClient());
this(Configuration.getDefaultApiClient());
}
public QueryApi(ApiClient apiClient) {

View File

@@ -173,12 +173,12 @@ public class Bird {
// add `size` to the URL query string
if (getSize() != null) {
joiner.add(String.format("%ssize%s=%s", prefix, suffix, URLEncoder.encode(ApiClient.valueToString(getSize()), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
joiner.add(String.format("%ssize%s=%s", prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getSize()))));
}
// add `color` to the URL query string
if (getColor() != null) {
joiner.add(String.format("%scolor%s=%s", prefix, suffix, URLEncoder.encode(ApiClient.valueToString(getColor()), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
joiner.add(String.format("%scolor%s=%s", prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getColor()))));
}
return joiner.toString();

View File

@@ -173,12 +173,12 @@ public class Category {
// add `id` to the URL query string
if (getId() != null) {
joiner.add(String.format("%sid%s=%s", prefix, suffix, URLEncoder.encode(ApiClient.valueToString(getId()), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
joiner.add(String.format("%sid%s=%s", prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getId()))));
}
// add `name` to the URL query string
if (getName() != null) {
joiner.add(String.format("%sname%s=%s", prefix, suffix, URLEncoder.encode(ApiClient.valueToString(getName()), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
joiner.add(String.format("%sname%s=%s", prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getName()))));
}
return joiner.toString();

View File

@@ -222,7 +222,7 @@ public class DataQuery extends Query {
// add `id` to the URL query string
if (getId() != null) {
joiner.add(String.format("%sid%s=%s", prefix, suffix, URLEncoder.encode(ApiClient.valueToString(getId()), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
joiner.add(String.format("%sid%s=%s", prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getId()))));
}
// add `outcomes` to the URL query string
@@ -230,23 +230,23 @@ public class DataQuery extends Query {
for (int i = 0; i < getOutcomes().size(); i++) {
joiner.add(String.format("%soutcomes%s%s=%s", prefix, suffix,
"".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix),
URLEncoder.encode(ApiClient.valueToString(getOutcomes().get(i)), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
ApiClient.urlEncode(ApiClient.valueToString(getOutcomes().get(i)))));
}
}
// add `suffix` to the URL query string
if (getSuffix() != null) {
joiner.add(String.format("%ssuffix%s=%s", prefix, suffix, URLEncoder.encode(ApiClient.valueToString(getSuffix()), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
joiner.add(String.format("%ssuffix%s=%s", prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getSuffix()))));
}
// add `text` to the URL query string
if (getText() != null) {
joiner.add(String.format("%stext%s=%s", prefix, suffix, URLEncoder.encode(ApiClient.valueToString(getText()), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
joiner.add(String.format("%stext%s=%s", prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getText()))));
}
// add `date` to the URL query string
if (getDate() != null) {
joiner.add(String.format("%sdate%s=%s", prefix, suffix, URLEncoder.encode(ApiClient.valueToString(getDate()), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
joiner.add(String.format("%sdate%s=%s", prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getDate()))));
}
return joiner.toString();

View File

@@ -503,7 +503,7 @@ public class DefaultValue {
if (getArrayStringEnumRefDefault().get(i) != null) {
joiner.add(String.format("%sarray_string_enum_ref_default%s%s=%s", prefix, suffix,
"".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix),
URLEncoder.encode(ApiClient.valueToString(getArrayStringEnumRefDefault().get(i)), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
ApiClient.urlEncode(ApiClient.valueToString(getArrayStringEnumRefDefault().get(i)))));
}
}
}
@@ -513,7 +513,7 @@ public class DefaultValue {
for (int i = 0; i < getArrayStringEnumDefault().size(); i++) {
joiner.add(String.format("%sarray_string_enum_default%s%s=%s", prefix, suffix,
"".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix),
URLEncoder.encode(ApiClient.valueToString(getArrayStringEnumDefault().get(i)), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
ApiClient.urlEncode(ApiClient.valueToString(getArrayStringEnumDefault().get(i)))));
}
}
@@ -522,7 +522,7 @@ public class DefaultValue {
for (int i = 0; i < getArrayStringDefault().size(); i++) {
joiner.add(String.format("%sarray_string_default%s%s=%s", prefix, suffix,
"".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix),
URLEncoder.encode(ApiClient.valueToString(getArrayStringDefault().get(i)), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
ApiClient.urlEncode(ApiClient.valueToString(getArrayStringDefault().get(i)))));
}
}
@@ -531,7 +531,7 @@ public class DefaultValue {
for (int i = 0; i < getArrayIntegerDefault().size(); i++) {
joiner.add(String.format("%sarray_integer_default%s%s=%s", prefix, suffix,
"".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix),
URLEncoder.encode(ApiClient.valueToString(getArrayIntegerDefault().get(i)), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
ApiClient.urlEncode(ApiClient.valueToString(getArrayIntegerDefault().get(i)))));
}
}
@@ -540,7 +540,7 @@ public class DefaultValue {
for (int i = 0; i < getArrayString().size(); i++) {
joiner.add(String.format("%sarray_string%s%s=%s", prefix, suffix,
"".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix),
URLEncoder.encode(ApiClient.valueToString(getArrayString().get(i)), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
ApiClient.urlEncode(ApiClient.valueToString(getArrayString().get(i)))));
}
}
@@ -549,7 +549,7 @@ public class DefaultValue {
for (int i = 0; i < getArrayStringNullable().size(); i++) {
joiner.add(String.format("%sarray_string_nullable%s%s=%s", prefix, suffix,
"".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix),
URLEncoder.encode(ApiClient.valueToString(getArrayStringNullable().get(i)), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
ApiClient.urlEncode(ApiClient.valueToString(getArrayStringNullable().get(i)))));
}
}
@@ -558,13 +558,13 @@ public class DefaultValue {
for (int i = 0; i < getArrayStringExtensionNullable().size(); i++) {
joiner.add(String.format("%sarray_string_extension_nullable%s%s=%s", prefix, suffix,
"".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix),
URLEncoder.encode(ApiClient.valueToString(getArrayStringExtensionNullable().get(i)), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
ApiClient.urlEncode(ApiClient.valueToString(getArrayStringExtensionNullable().get(i)))));
}
}
// add `string_nullable` to the URL query string
if (getStringNullable() != null) {
joiner.add(String.format("%sstring_nullable%s=%s", prefix, suffix, URLEncoder.encode(ApiClient.valueToString(getStringNullable()), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
joiner.add(String.format("%sstring_nullable%s=%s", prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getStringNullable()))));
}
return joiner.toString();

View File

@@ -207,17 +207,17 @@ public class NumberPropertiesOnly {
// add `number` to the URL query string
if (getNumber() != null) {
joiner.add(String.format("%snumber%s=%s", prefix, suffix, URLEncoder.encode(ApiClient.valueToString(getNumber()), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
joiner.add(String.format("%snumber%s=%s", prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getNumber()))));
}
// add `float` to the URL query string
if (getFloat() != null) {
joiner.add(String.format("%sfloat%s=%s", prefix, suffix, URLEncoder.encode(ApiClient.valueToString(getFloat()), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
joiner.add(String.format("%sfloat%s=%s", prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getFloat()))));
}
// add `double` to the URL query string
if (getDouble() != null) {
joiner.add(String.format("%sdouble%s=%s", prefix, suffix, URLEncoder.encode(ApiClient.valueToString(getDouble()), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
joiner.add(String.format("%sdouble%s=%s", prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getDouble()))));
}
return joiner.toString();

View File

@@ -354,12 +354,12 @@ public class Pet {
// add `id` to the URL query string
if (getId() != null) {
joiner.add(String.format("%sid%s=%s", prefix, suffix, URLEncoder.encode(ApiClient.valueToString(getId()), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
joiner.add(String.format("%sid%s=%s", prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getId()))));
}
// add `name` to the URL query string
if (getName() != null) {
joiner.add(String.format("%sname%s=%s", prefix, suffix, URLEncoder.encode(ApiClient.valueToString(getName()), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
joiner.add(String.format("%sname%s=%s", prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getName()))));
}
// add `category` to the URL query string
@@ -372,7 +372,7 @@ public class Pet {
for (int i = 0; i < getPhotoUrls().size(); i++) {
joiner.add(String.format("%sphotoUrls%s%s=%s", prefix, suffix,
"".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix),
URLEncoder.encode(ApiClient.valueToString(getPhotoUrls().get(i)), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
ApiClient.urlEncode(ApiClient.valueToString(getPhotoUrls().get(i)))));
}
}
@@ -388,7 +388,7 @@ public class Pet {
// add `status` to the URL query string
if (getStatus() != null) {
joiner.add(String.format("%sstatus%s=%s", prefix, suffix, URLEncoder.encode(ApiClient.valueToString(getStatus()), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
joiner.add(String.format("%sstatus%s=%s", prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getStatus()))));
}
return joiner.toString();

View File

@@ -220,7 +220,7 @@ public class Query {
// add `id` to the URL query string
if (getId() != null) {
joiner.add(String.format("%sid%s=%s", prefix, suffix, URLEncoder.encode(ApiClient.valueToString(getId()), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
joiner.add(String.format("%sid%s=%s", prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getId()))));
}
// add `outcomes` to the URL query string
@@ -228,7 +228,7 @@ public class Query {
for (int i = 0; i < getOutcomes().size(); i++) {
joiner.add(String.format("%soutcomes%s%s=%s", prefix, suffix,
"".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix),
URLEncoder.encode(ApiClient.valueToString(getOutcomes().get(i)), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
ApiClient.urlEncode(ApiClient.valueToString(getOutcomes().get(i)))));
}
}

View File

@@ -173,12 +173,12 @@ public class Tag {
// add `id` to the URL query string
if (getId() != null) {
joiner.add(String.format("%sid%s=%s", prefix, suffix, URLEncoder.encode(ApiClient.valueToString(getId()), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
joiner.add(String.format("%sid%s=%s", prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getId()))));
}
// add `name` to the URL query string
if (getName() != null) {
joiner.add(String.format("%sname%s=%s", prefix, suffix, URLEncoder.encode(ApiClient.valueToString(getName()), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
joiner.add(String.format("%sname%s=%s", prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getName()))));
}
return joiner.toString();

View File

@@ -142,7 +142,7 @@ public class TestFormObjectMultipartRequestMarker {
// add `name` to the URL query string
if (getName() != null) {
joiner.add(String.format("%sname%s=%s", prefix, suffix, URLEncoder.encode(ApiClient.valueToString(getName()), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
joiner.add(String.format("%sname%s=%s", prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getName()))));
}
return joiner.toString();

View File

@@ -235,22 +235,22 @@ public class TestQueryStyleDeepObjectExplodeTrueObjectAllOfQueryObjectParameter
// add `size` to the URL query string
if (getSize() != null) {
joiner.add(String.format("%ssize%s=%s", prefix, suffix, URLEncoder.encode(ApiClient.valueToString(getSize()), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
joiner.add(String.format("%ssize%s=%s", prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getSize()))));
}
// add `color` to the URL query string
if (getColor() != null) {
joiner.add(String.format("%scolor%s=%s", prefix, suffix, URLEncoder.encode(ApiClient.valueToString(getColor()), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
joiner.add(String.format("%scolor%s=%s", prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getColor()))));
}
// add `id` to the URL query string
if (getId() != null) {
joiner.add(String.format("%sid%s=%s", prefix, suffix, URLEncoder.encode(ApiClient.valueToString(getId()), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
joiner.add(String.format("%sid%s=%s", prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getId()))));
}
// add `name` to the URL query string
if (getName() != null) {
joiner.add(String.format("%sname%s=%s", prefix, suffix, URLEncoder.encode(ApiClient.valueToString(getName()), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
joiner.add(String.format("%sname%s=%s", prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getName()))));
}
return joiner.toString();

View File

@@ -155,7 +155,7 @@ public class TestQueryStyleFormExplodeTrueArrayStringQueryObjectParameter {
for (int i = 0; i < getValues().size(); i++) {
joiner.add(String.format("%svalues%s%s=%s", prefix, suffix,
"".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix),
URLEncoder.encode(ApiClient.valueToString(getValues().get(i)), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
ApiClient.urlEncode(ApiClient.valueToString(getValues().get(i)))));
}
}

View File

@@ -17,7 +17,7 @@ package org.openapitools.client;
public class Configuration {
public static final String VERSION = "1.0.0";
private static ApiClient defaultApiClient = new ApiClient();
private static volatile ApiClient defaultApiClient = new ApiClient();
/**
* Get the default API client, which would be used when creating API

View File

@@ -17,7 +17,7 @@ package org.openapitools.client;
public class Configuration {
public static final String VERSION = "0.1.0";
private static ApiClient defaultApiClient = new ApiClient();
private static volatile ApiClient defaultApiClient = new ApiClient();
/**
* Get the default API client, which would be used when creating API

View File

@@ -17,7 +17,7 @@ package org.openapitools.client;
public class Configuration {
public static final String VERSION = "0.1.0";
private static ApiClient defaultApiClient = new ApiClient();
private static volatile ApiClient defaultApiClient = new ApiClient();
/**
* Get the default API client, which would be used when creating API