Re: Implementation of compatibility rules

2017-02-22 Thread Doug Cutting
Support for aliases should be easy to add by calling Schema#applyAliases before the compatibility check. Whether aliases should be applied depends on whether the compatibility check is meant to be valid only for implementations that support aliases or also ones that do not. Note that support for

Re: Implementation of compatibility rules

2017-02-22 Thread Joseph P.
This change (considering alias in schema compatibility) is really welcomed and needed in our usage of it. So thanks a lot for this much needed change (IMHO). best, joseph On Wed, Feb 22, 2017 at 4:55 PM, Elliot West wrote: > Update: > > I had a go at modifying org.apache.avro.SchemaValidatorBui

Re: Implementation of compatibility rules

2017-02-22 Thread Elliot West
Update: I had a go at modifying org.apache.avro.SchemaValidatorBuilder to use SchemaCompatibility and have then run schema compatibility test suites from both the Avro project and Confluent's Schema registry. Every case that is tested appears to continue to function correctly with one exception; S

Re: Implementation of compatibility rules

2017-02-22 Thread Elliot West
Further to this, is there any reason why conceptually, the implementation of org.apache.avro.ValidateMutualRead.canRead(Schema, Schema) could not be changed from: static void canRead(Schema writtenWith, Schema readUsing) throws SchemaValidationException { boolean error; try {

Implementation of compatibility rules

2017-02-17 Thread Elliot West
Hi, I've been attempting to understand the implementation of Avro schema compatibility rules and am slightly confused by the structure of the code. It seems that there are at least two possible entry points: - org.apache.avro.SchemaCompatibility.checkReaderWriterCompatibility(Schema, Schema