Skip to content

Commit 3daa475

Browse files
committed
open api: fix type vs types difference over v30 vs v31
- remove useless code around it
1 parent daf6090 commit 3daa475

File tree

2 files changed

+15
-19
lines changed

2 files changed

+15
-19
lines changed

modules/jooby-openapi/src/main/java/io/jooby/internal/openapi/asciidoc/AsciiDocContext.java

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,11 @@ public class AsciiDocContext {
6262

6363
private final Instant now = Instant.now();
6464

65+
static {
66+
// type vs types difference in v30 vs v31
67+
System.setProperty(Schema.BIND_TYPE_AND_TYPES, Boolean.TRUE.toString());
68+
}
69+
6570
public AsciiDocContext(Path baseDir, ObjectMapper json, ObjectMapper yaml, OpenAPIExt openapi) {
6671
this.json = json;
6772
this.yamlOpenApi = yaml;
@@ -294,15 +299,7 @@ public Map<String, Object> error(EvaluationContext context, Map<String, Object>
294299

295300
public String schemaType(Schema<?> schema) {
296301
var resolved = resolveSchema(schema);
297-
return Optional.ofNullable(resolved.getFormat()).orElse(resolveType(resolved));
298-
}
299-
300-
public String resolveType(Schema<?> schema) {
301-
var resolved = resolveSchema(schema);
302-
if (resolved.getType() == null) {
303-
return resolved.getTypes().iterator().next();
304-
}
305-
return resolved.getType();
302+
return Optional.ofNullable(resolved.getFormat()).orElse(resolved.getType());
306303
}
307304

308305
public Schema<?> resolveSchema(Schema<?> schema) {
@@ -315,8 +312,7 @@ public Schema<?> resolveSchema(Schema<?> schema) {
315312

316313
public Object schemaProperties(Schema<?> schema) {
317314
var resolved = resolveSchema(schema);
318-
var resolvedType = resolveType(resolved);
319-
if ("array".equals(resolvedType)) {
315+
if ("array".equals(resolved.getType())) {
320316
return List.of(traverse(resolved.getItems(), NOOP));
321317
}
322318
return traverse(schema, NOOP);
@@ -329,7 +325,7 @@ public Schema<?> reduceSchema(Schema<?> schema) {
329325
traverse(
330326
schema,
331327
(name, value) -> {
332-
var type = resolveType(value);
328+
var type = value.getType();
333329
if ("object".equals(type)) {
334330
var object = new Schema<>();
335331
object.setType(type);
@@ -348,17 +344,17 @@ public Schema<?> reduceSchema(Schema<?> schema) {
348344
}
349345

350346
public Schema<?> emptySchema(Schema<?> schema) {
347+
var resolved = resolveSchema(schema);
351348
var empty = new Schema<>();
352-
empty.setType(resolveType(schema));
353-
empty.setName(schema.getName());
349+
empty.setType(resolved.getType());
350+
empty.setName(resolved.getName());
354351
return empty;
355352
}
356353

357354
public Object schemaExample(Schema<?> schema) {
358355
var resolved = resolveSchema(schema);
359-
var resolvedType = resolveType(resolved);
360356
var target = resolved;
361-
if ("array".equals(resolvedType)) {
357+
if ("array".equals(resolved.getType())) {
362358
target = resolveSchema(resolved.getItems());
363359
}
364360
var result =
@@ -380,7 +376,7 @@ public Object schemaExample(Schema<?> schema) {
380376
}
381377
},
382378
NOOP));
383-
return "array".equals(resolvedType) ? List.of(result) : result;
379+
return "array".equals(resolved.getType()) ? List.of(result) : result;
384380
}
385381

386382
public void traverseSchema(Schema<?> schema, BiConsumer<String, Schema<?>> consumer) {
@@ -407,7 +403,7 @@ private Map<String, Object> traverse(
407403
properties.forEach(
408404
(name, value) -> {
409405
var resolvedValue = resolveSchema(value);
410-
var valueType = resolveType(resolvedValue);
406+
var valueType = resolvedValue.getType();
411407
consumer.accept(name, resolvedValue);
412408
if ("object".equals(valueType)) {
413409
result.put(name, traverse(visited, resolvedValue, valueMapper, NOOP));

modules/jooby-openapi/src/main/java/io/jooby/internal/openapi/asciidoc/Display.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ public Object apply(
113113
prefix = Optional.ofNullable(resolved.getName()).orElse("") + "[";
114114
suffix = "]";
115115
}
116-
if ("object".equals(asciidoc.resolveType(target))) {
116+
if ("object".equals(target.getType())) {
117117
return new SafeString(prefix + "<<" + target.getName() + ">>" + suffix);
118118
}
119119
// no link for basic types

0 commit comments

Comments
 (0)