@@ -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 ));
0 commit comments