Hi,
When I run the code below the output indicates that these two are
incompatible in terms of schema evolution.
The ONLY difference is the namespace (v1 and v2).
If I remove the namespace line the are reported as 'compatible'.
My question is why these two are considered to be incompatible?
@Test
public void evolveTest() throws IOException {
Schema schemaV1 = new Schema.Parser().parse("{\n" +
" \"type\" : \"record\",\n" +
" \"name\" : \"Foo\",\n" +
" \"namespace\" : \"nl.example.evoleschema.v1\",\n" +
" \"fields\" : [ {\n" +
" \"name\" : \"count\",\n" +
" \"type\" : {\n" +
" \"type\" : \"enum\",\n" +
" \"name\" : \"Bar\",\n" +
" \"symbols\" : [ \"ONE\", \"TWO\", \"THREE\" ]\n" +
" }\n" +
" } ]\n" +
"}");
Schema schemaV2 = new Schema.Parser().parse("{\n" +
" \"type\" : \"record\",\n" +
" \"name\" : \"Foo\",\n" +
" \"namespace\" : \"nl.example.evoleschema.v2\",\n" +
" \"fields\" : [ {\n" +
" \"name\" : \"count\",\n" +
" \"type\" : {\n" +
" \"type\" : \"enum\",\n" +
" \"name\" : \"Bar\",\n" +
" \"symbols\" : [ \"ONE\", \"TWO\", \"THREE\" ]\n" +
" }\n" +
" } ]\n" +
"}");
LOG.info("{}",
SchemaCompatibility.checkReaderWriterCompatibility(schemaV1,
schemaV2).getType());
LOG.info("{}",
SchemaCompatibility.checkReaderWriterCompatibility(schemaV2,
schemaV1).getType());
}
--
Best regards / Met vriendelijke groeten,
Niels Basjes