Skip to content
This repository was archived by the owner on Dec 25, 2024. It is now read-only.

Commit c981617

Browse files
authored
Java client, adds responses (#391)
* Adds ApiResponse interface * Adds ApiResponse and ResponseDeserializer * Adds partial test of ResponseDeserializer * Changes all autogen schema classes to use selaed interfaces rather than a sealed class * Changes all json schema selead clases to sealed interfaces * Updates sealed schema classes to use records * Java petstore sample updated * Fixes typo * Adds validateAndBox method to all generated schemas * Adds validateAndBox to all schemas * Fixes json deserialization of numbers into doubles and longs * Changes request bodies to use sealed interface nd record, updates schema and request body docs * Adds missing methods and line breaks to docs * Handles case where response lacks content * Adds subpackage to responses * Fixes response filenames in java * Fixes MediaType usages in RequestBodySerializer and ResponseDeserializer * Changes MediaType into sealed interface and record classes * Updates response deserializer gson instance * Updates request body dos to show sealed media type interface * Fixes request body doc for content value, adds comment about schema generic * Fixes response class names * Fixes handling or responses with no schema definition * Fixes solidus package path * Adds validateAndBox method requiremnt for JsonSchemas * Passes generic into JsonSchema classes * Adds more needed JsonSchema ? generics * Adds and uses deserializeBody method * Adds more needed ? generecs for JsonSchemas * Improves RequestBodySerializerTest * Fixes validator tests * Fixes build warnings * Fixes java tests * Response getBody methods generated * Uses MapUtils.makeMap when there are no response schemas * Petstore updated with response docs * Samples and docs updated * Sample regen with python fix * Samples regen * Fixes nullable check when using gson toJson * Adds missing import * Adds missing response class for java * Adds another nullness fix * Adds -e and -X flags to mvn test * Adds mvn version info to log * Adds java.net.http as a module when building * Adds testCompilerArgument * Surefire plugin updated * Samples updated, maven-surefire-plugin version updated * Updates parallelism to use classes
1 parent 45240af commit c981617

File tree

1,422 files changed

+56750
-46550
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,422 files changed

+56750
-46550
lines changed

.circleci/parallel.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ elif [ "$JOB_ID" = "testPythonClientSamples" ]; then
2828
elif [ "$JOB_ID" = "testJava17ClientSamples" ]; then
2929
echo "Running job $JOB_ID ..."
3030
java -version
31+
mvn -version
3132
cat ./.circleci/testJava17ClientSamples.sh | parallel
3233

3334
else

docs/generators/java.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
178178
| Name | Supported | Defined By |
179179
| ---- | --------- | ---------- |
180180
|schemas|✓|OAS3
181-
|responses||OAS3
181+
|responses||OAS3
182182
|parameters|✗|OAS3
183183
|examples|✗|OAS3
184184
|requestBodies|✓|OAS3
@@ -220,7 +220,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
220220
|Servers|✓|OAS3
221221
|Security|✗|OAS2,OAS3
222222
|ComponentSchemas|✓|OAS3
223-
|ComponentResponses||OAS3
223+
|ComponentResponses||OAS3
224224
|ComponentParameters|✗|OAS3
225225
|ComponentRequestBodies|✓|OAS3
226226
|ComponentHeaders|✗|OAS3

samples/client/3_0_3_unit_test/java/.openapi-generator/FILES

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,9 @@ src/main/java/org/openapijsonschematools/client/parameter/ParameterStyle.java
190190
src/main/java/org/openapijsonschematools/client/requestbody/GenericRequestBody.java
191191
src/main/java/org/openapijsonschematools/client/requestbody/RequestBodySerializer.java
192192
src/main/java/org/openapijsonschematools/client/requestbody/SerializedRequestBody.java
193+
src/main/java/org/openapijsonschematools/client/response/ApiResponse.java
194+
src/main/java/org/openapijsonschematools/client/response/DeserializedApiResponse.java
195+
src/main/java/org/openapijsonschematools/client/response/ResponseDeserializer.java
193196
src/main/java/org/openapijsonschematools/client/schemas/AnyTypeJsonSchema.java
194197
src/main/java/org/openapijsonschematools/client/schemas/BooleanJsonSchema.java
195198
src/main/java/org/openapijsonschematools/client/schemas/DateJsonSchema.java
@@ -292,6 +295,7 @@ src/main/java/org/openapijsonschematools/client/servers/ServerWithVariables.java
292295
src/main/java/org/openapijsonschematools/client/servers/ServerWithoutVariables.java
293296
src/test/java/org/openapijsonschematools/client/configurations/JsonSchemaKeywordFlagsTest.java
294297
src/test/java/org/openapijsonschematools/client/requestbody/RequestBodySerializerTest.java
298+
src/test/java/org/openapijsonschematools/client/response/ResponseDeserializerTest.java
295299
src/test/java/org/openapijsonschematools/client/schemas/AnyTypeSchemaTest.java
296300
src/test/java/org/openapijsonschematools/client/schemas/ArrayTypeSchemaTest.java
297301
src/test/java/org/openapijsonschematools/client/schemas/BooleanSchemaTest.java

samples/client/3_0_3_unit_test/java/docs/components/schemas/AdditionalpropertiesAllowsASchemaWhichShouldValidate.md

Lines changed: 127 additions & 111 deletions
Large diffs are not rendered by default.

samples/client/3_0_3_unit_test/java/docs/components/schemas/AdditionalpropertiesAreAllowedByDefault.md

Lines changed: 156 additions & 136 deletions
Large diffs are not rendered by default.

samples/client/3_0_3_unit_test/java/docs/components/schemas/AdditionalpropertiesCanExistByItself.md

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,45 +4,46 @@ public class AdditionalpropertiesCanExistByItself<br>
44

55
A class that contains necessary nested
66
- schema classes (which validate payloads), extends JsonSchema
7-
- abstract sealed classes which store validated payloads, java version of a sum type
7+
- sealed interfaces which store validated payloads, java version of a sum type
88
- boxed classes which store validated payloads, sealed permits class implementations
99
- classes to store validated map payloads, extends FrozenMap
1010
- classes to build inputs for map payloads
1111

1212
## Nested Class Summary
1313
| Modifier and Type | Class and Description |
1414
| ----------------- | ---------------------- |
15-
| static class | [AdditionalpropertiesCanExistByItself.AdditionalpropertiesCanExistByItself1Boxed](#additionalpropertiescanexistbyitself1boxed)<br> abstract sealed validated payload class |
16-
| static class | [AdditionalpropertiesCanExistByItself.AdditionalpropertiesCanExistByItself1BoxedMap](#additionalpropertiescanexistbyitself1boxedmap)<br> boxed class to store validated Map payloads |
15+
| sealed interface | [AdditionalpropertiesCanExistByItself.AdditionalpropertiesCanExistByItself1Boxed](#additionalpropertiescanexistbyitself1boxed)<br> sealed interface for validated payloads |
16+
| record | [AdditionalpropertiesCanExistByItself.AdditionalpropertiesCanExistByItself1BoxedMap](#additionalpropertiescanexistbyitself1boxedmap)<br> boxed class to store validated Map payloads |
1717
| static class | [AdditionalpropertiesCanExistByItself.AdditionalpropertiesCanExistByItself1](#additionalpropertiescanexistbyitself1)<br> schema class |
1818
| static class | [AdditionalpropertiesCanExistByItself.AdditionalpropertiesCanExistByItselfMapBuilder](#additionalpropertiescanexistbyitselfmapbuilder)<br> builder for Map payloads |
1919
| static class | [AdditionalpropertiesCanExistByItself.AdditionalpropertiesCanExistByItselfMap](#additionalpropertiescanexistbyitselfmap)<br> output class for Map payloads |
20-
| static class | [AdditionalpropertiesCanExistByItself.AdditionalPropertiesBoxed](#additionalpropertiesboxed)<br> abstract sealed validated payload class |
21-
| static class | [AdditionalpropertiesCanExistByItself.AdditionalPropertiesBoxedBoolean](#additionalpropertiesboxedboolean)<br> boxed class to store validated boolean payloads |
20+
| sealed interface | [AdditionalpropertiesCanExistByItself.AdditionalPropertiesBoxed](#additionalpropertiesboxed)<br> sealed interface for validated payloads |
21+
| record | [AdditionalpropertiesCanExistByItself.AdditionalPropertiesBoxedBoolean](#additionalpropertiesboxedboolean)<br> boxed class to store validated boolean payloads |
2222
| static class | [AdditionalpropertiesCanExistByItself.AdditionalProperties](#additionalproperties)<br> schema class |
2323

2424
## AdditionalpropertiesCanExistByItself1Boxed
25-
public static abstract sealed class AdditionalpropertiesCanExistByItself1Boxed<br>
25+
public sealed interface AdditionalpropertiesCanExistByItself1Boxed<br>
2626
permits<br>
2727
[AdditionalpropertiesCanExistByItself1BoxedMap](#additionalpropertiescanexistbyitself1boxedmap)
2828

29-
abstract sealed class that stores validated payloads using boxed classes
29+
sealed interface that stores validated payloads using boxed classes
3030

3131
## AdditionalpropertiesCanExistByItself1BoxedMap
32-
public static final class AdditionalpropertiesCanExistByItself1BoxedMap<br>
33-
extends [AdditionalpropertiesCanExistByItself1Boxed](#additionalpropertiescanexistbyitself1boxed)
32+
public record AdditionalpropertiesCanExistByItself1BoxedMap<br>
33+
implements [AdditionalpropertiesCanExistByItself1Boxed](#additionalpropertiescanexistbyitself1boxed)
3434

35-
a boxed class to store validated Map payloads, sealed permits class implementation
35+
record that stores validated Map payloads, sealed permits implementation
3636

3737
### Constructor Summary
3838
| Constructor and Description |
3939
| --------------------------- |
4040
| AdditionalpropertiesCanExistByItself1BoxedMap([AdditionalpropertiesCanExistByItselfMap](#additionalpropertiescanexistbyitselfmap) data)<br>Creates an instance, private visibility |
4141

42-
### Field Summary
43-
| Modifier and Type | Field and Description |
42+
### Method Summary
43+
| Modifier and Type | Method and Description |
4444
| ----------------- | ---------------------- |
45-
| [AdditionalpropertiesCanExistByItselfMap](#additionalpropertiescanexistbyitselfmap) | data<br>validated payload |
45+
| [AdditionalpropertiesCanExistByItselfMap](#additionalpropertiescanexistbyitselfmap) | data()<br>validated payload |
46+
| @Nullable Object | getData()<br>validated payload |
4647

4748
## AdditionalpropertiesCanExistByItself1
4849
public static class AdditionalpropertiesCanExistByItself1<br>
@@ -87,7 +88,9 @@ AdditionalpropertiesCanExistByItself.AdditionalpropertiesCanExistByItselfMap val
8788
| ----------------- | ---------------------- |
8889
| [AdditionalpropertiesCanExistByItselfMap](#additionalpropertiescanexistbyitselfmap) | validate([Map&lt;?, ?&gt;](#additionalpropertiescanexistbyitselfmapbuilder) arg, SchemaConfiguration configuration) |
8990
| [AdditionalpropertiesCanExistByItself1BoxedMap](#additionalpropertiescanexistbyitself1boxedmap) | validateAndBox([Map&lt;?, ?&gt;](#additionalpropertiescanexistbyitselfmapbuilder) arg, SchemaConfiguration configuration) |
91+
| [AdditionalpropertiesCanExistByItself1Boxed](#additionalpropertiescanexistbyitself1boxed) | validateAndBox(@Nullable Object arg, SchemaConfiguration configuration) |
9092
| @Nullable Object | validate(@Nullable Object arg, SchemaConfiguration configuration) |
93+
9194
## AdditionalpropertiesCanExistByItselfMapBuilder
9295
public class AdditionalpropertiesCanExistByItselfMapBuilder<br>
9396
builder for `Map<String, Boolean>`
@@ -118,27 +121,28 @@ A class to store validated Map payloads
118121
| boolean | getAdditionalProperty(String name)<br>provides type safety for additional properties |
119122

120123
## AdditionalPropertiesBoxed
121-
public static abstract sealed class AdditionalPropertiesBoxed<br>
124+
public sealed interface AdditionalPropertiesBoxed<br>
122125
permits<br>
123126
[AdditionalPropertiesBoxedBoolean](#additionalpropertiesboxedboolean)
124127

125-
abstract sealed class that stores validated payloads using boxed classes
128+
sealed interface that stores validated payloads using boxed classes
126129

127130
## AdditionalPropertiesBoxedBoolean
128-
public static final class AdditionalPropertiesBoxedBoolean<br>
129-
extends [AdditionalPropertiesBoxed](#additionalpropertiesboxed)
131+
public record AdditionalPropertiesBoxedBoolean<br>
132+
implements [AdditionalPropertiesBoxed](#additionalpropertiesboxed)
130133

131-
a boxed class to store validated boolean payloads, sealed permits class implementation
134+
record that stores validated boolean payloads, sealed permits implementation
132135

133136
### Constructor Summary
134137
| Constructor and Description |
135138
| --------------------------- |
136139
| AdditionalPropertiesBoxedBoolean(boolean data)<br>Creates an instance, private visibility |
137140

138-
### Field Summary
139-
| Modifier and Type | Field and Description |
141+
### Method Summary
142+
| Modifier and Type | Method and Description |
140143
| ----------------- | ---------------------- |
141-
| boolean | data<br>validated payload |
144+
| boolean | data()<br>validated payload |
145+
| @Nullable Object | getData()<br>validated payload |
142146

143147
## AdditionalProperties
144148
public static class AdditionalProperties<br>

0 commit comments

Comments
 (0)