confluentinc / schema-registry

Confluent Schema Registry for Kafka
https://docs.confluent.io/current/schema-registry/docs/index.html
Other
2.2k stars 1.11k forks source link

JsonSchemaUtils needs case statement for specVersion DRAFT_2020_12 #3284

Open bgoldiing opened 6 hours ago

bgoldiing commented 6 hours ago

I've added config.put("json.schema.spec.version", "DRAFT_2020_12") to by Producer properties but schema that generaeted is DRAFT_07. DRAFT_2020_12 is a allow version schema should be generated with the correct version.

To fix looks like JsonSchemaUtils needs a case for DRAFT_2020_12 (see ~ line 190):

 switch (specVersion) {
      case DRAFT_4:
        draft = JsonSchemaDraft.DRAFT_04;
        break;
      case DRAFT_6:
        draft = JsonSchemaDraft.DRAFT_06;
        break;
      case DRAFT_7:
        draft = JsonSchemaDraft.DRAFT_07;
        break;
      case DRAFT_2019_09:
        draft = JsonSchemaDraft.DRAFT_2019_09;
        break;
      default:
        draft = JsonSchemaDraft.DRAFT_07;
        break;
    }
bgoldiing commented 6 hours ago

JsonSchemaUtils code: https://github.com/confluentinc/schema-registry/blob/master/json-schema-provider/src/main/java/io/confluent/kafka/schemaregistry/json/JsonSchemaUtils.java