GitHub user johnhofman opened a pull request: https://github.com/apache/kafka/pull/1582
KAFKA-3910: Cyclic schema support in ConnectSchema and SchemaBuilder This feature uses a FutureSchema as a placeholder to be resolved later. Resolution is attempted whenever a ConnectSchema is constructed, it attempts to resolve all its children (fields, keySchema, or valueSchema) and recurses until the end of the tree. A FutureSchema is resolved when it finds a parent schema that matches its name, and optional flag. If a FutureSchema is accessed before being resolved, it will throw a DataException. The SchemaBuilder constructs a FutureSchema if a field is added with only a type name. You can merge this pull request into a Git repository by running: $ git pull https://github.com/johnhofman/kafka cyclic Alternatively you can review and apply these changes as the patch at: https://github.com/apache/kafka/pull/1582.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #1582 ---- commit d932db4544cc2d20a46bf873fbd92f2c09450276 Author: John Hofman <johnhof...@users.noreply.github.com> Date: 2016-06-30T20:04:19Z Add FutureSchema to support cyclic schemas commit 7d95c487d4a5bf3cb751deb98425e5123abb461b Author: John Hofman <johnhof...@users.noreply.github.com> Date: 2016-07-04T07:32:47Z Fix resolution failure test commit 09f1b47c238ff10f58681e44816f2ba39ed95166 Author: John Hofman <johnhof...@users.noreply.github.com> Date: 2016-07-04T09:53:58Z Move cyclic comparison resolution to FutureSchema commit c1c632b51f80d81c29cb66a35c5aed867ad869e7 Author: John Hofman <johnhof...@users.noreply.github.com> Date: 2016-07-04T11:26:35Z Clean up unused tokens, minor spelling fixes ---- --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---