{"action":"created","comment":{"url":"https://api.github.com/repos/homeaway/stream-registry/pulls/comments/240711202","pull_request_review_id":183803960,"id":240711202,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MDcxMTIwMg==","diff_hunk":"@@ -0,0 +1,57 @@\n+/* Copyright (c) 2018 Expedia Group.\n+ * All rights reserved.  http://www.homeaway.com\n+\n+ * Licensed under the Apache License, Version 2.0 (the \"License\");\n+ * you may not use this file except in compliance with the License.\n+ * You may obtain a copy of the License at\n+\n+ *      http://www.apache.org/licenses/LICENSE-2.0\n+\n+ * Unless required by applicable law or agreed to in writing, software\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+ * See the License for the specific language governing permissions and\n+ * limitations under the License.\n+ */\n+package com.homeaway.streamingplatform.extensions.validation;\n+\n+import java.util.Map;\n+\n+import com.homeaway.streamingplatform.exceptions.SchemaRegistrationException;\n+import com.homeaway.streamingplatform.model.Stream;\n+\n+/**\n+ * Interface for managing schema validation, registration\n+ */\n+public interface SchemaRegistrar {\n+\n+    /**\n+     * Used to validate the stream's key and value schemas\n+     *\n+     * @param stream object\n+     * @return whether schemas are valid or not\n+     */\n+    boolean isSchemaValid(Stream stream);","path":"core/src/main/java/com/homeaway/streamingplatform/extensions/validation/SchemaRegistrar.java","position":34,"original_position":34,"commit_id":"b4bfc9e9e999c58c22a45a7604afe8c22d5b4d3d","original_commit_id":"dcfbd59ac71c403a82cc8524c959156218f049ac","user":{"login":"westeras","id":1512425,"node_id":"MDQ6VXNlcjE1MTI0MjU=","avatar_url":"https://avatars1.githubusercontent.com/u/1512425?v=4","gravatar_id":"","url":"https://api.github.com/users/westeras","html_url":"https://github.com/westeras","followers_url":"https://api.github.com/users/westeras/followers","following_url":"https://api.github.com/users/westeras/following{/other_user}","gists_url":"https://api.github.com/users/westeras/gists{/gist_id}","starred_url":"https://api.github.com/users/westeras/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/westeras/subscriptions","organizations_url":"https://api.github.com/users/westeras/orgs","repos_url":"https://api.github.com/users/westeras/repos","events_url":"https://api.github.com/users/westeras/events{/privacy}","received_events_url":"https://api.github.com/users/westeras/received_events","type":"User","site_admin":false},"body":"My thought is that we are not assuming the use of Confluent's schema registry which is why we are creating the abstraction in the first place.  Two simple methods make more sense to me.  @vinayakponangi what do you think?","created_at":"2018-12-11T17:22:14Z","updated_at":"2018-12-11T17:22:14Z","html_url":"https://github.com/homeaway/stream-registry/pull/41#discussion_r240711202","pull_request_url":"https://api.github.com/repos/homeaway/stream-registry/pulls/41","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/homeaway/stream-registry/pulls/comments/240711202"},"html":{"href":"https://github.com/homeaway/stream-registry/pull/41#discussion_r240711202"},"pull_request":{"href":"https://api.github.com/repos/homeaway/stream-registry/pulls/41"}},"in_reply_to_id":240702291},"pull_request":{"url":"https://api.github.com/repos/homeaway/stream-registry/pulls/41","id":237752652,"node_id":"MDExOlB1bGxSZXF1ZXN0MjM3NzUyNjUy","html_url":"https://github.com/homeaway/stream-registry/pull/41","diff_url":"https://github.com/homeaway/stream-registry/pull/41.diff","patch_url":"https://github.com/homeaway/stream-registry/pull/41.patch","issue_url":"https://api.github.com/repos/homeaway/stream-registry/issues/41","number":41,"state":"open","locked":false,"title":"Schema Validation","user":{"login":"westeras","id":1512425,"node_id":"MDQ6VXNlcjE1MTI0MjU=","avatar_url":"https://avatars1.githubusercontent.com/u/1512425?v=4","gravatar_id":"","url":"https://api.github.com/users/westeras","html_url":"https://github.com/westeras","followers_url":"https://api.github.com/users/westeras/followers","following_url":"https://api.github.com/users/westeras/following{/other_user}","gists_url":"https://api.github.com/users/westeras/gists{/gist_id}","starred_url":"https://api.github.com/users/westeras/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/westeras/subscriptions","organizations_url":"https://api.github.com/users/westeras/orgs","repos_url":"https://api.github.com/users/westeras/repos","events_url":"https://api.github.com/users/westeras/events{/privacy}","received_events_url":"https://api.github.com/users/westeras/received_events","type":"User","site_admin":false},"body":"# stream-registry PR\r\n\r\nAdding an interface for defining schema validation/registration\r\n\r\n## Added\r\n* `SchemaRegistrar` interface\r\n* Added ability to configure custom `SchemaRegistrar` class, which is used to validate and register schema on stream upsert\r\n\r\n# PR Checklist Forms\r\n\r\n_(to be filled out by PR submitter)_\r\n- [x] This template filled (above this section)\r\n- [ ] CHANGELOG.md updated\r\n- [ ] Reviewer assigned\r\n- [ ] PR assigned (presumably to submitter)\r\n- [ ] Labels added (enhancement, bug, documentation) \r\n- [ ] Milestone selected\r\n- [ ] All files reviewed before sending to reviewers\r\n- [ ] Any annotations for reviewers have been added\r\n      (with preference of annotating directly in code comments)\r\n- [ ] PR builds successfully\r\n","created_at":"2018-12-11T16:51:09Z","updated_at":"2018-12-11T17:22:14Z","closed_at":null,"merged_at":null,"merge_commit_sha":"5d9d006fc7e3078f70e668f21900e8d781f7fc12","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/homeaway/stream-registry/pulls/41/commits","review_comments_url":"https://api.github.com/repos/homeaway/stream-registry/pulls/41/comments","review_comment_url":"https://api.github.com/repos/homeaway/stream-registry/pulls/comments{/number}","comments_url":"https://api.github.com/repos/homeaway/stream-registry/issues/41/comments","statuses_url":"https://api.github.com/repos/homeaway/stream-registry/statuses/b4bfc9e9e999c58c22a45a7604afe8c22d5b4d3d","head":{"label":"westeras:schema-validation","ref":"schema-validation","sha":"b4bfc9e9e999c58c22a45a7604afe8c22d5b4d3d","user":{"login":"westeras","id":1512425,"node_id":"MDQ6VXNlcjE1MTI0MjU=","avatar_url":"https://avatars1.githubusercontent.com/u/1512425?v=4","gravatar_id":"","url":"https://api.github.com/users/westeras","html_url":"https://github.com/westeras","followers_url":"https://api.github.com/users/westeras/followers","following_url":"https://api.github.com/users/westeras/following{/other_user}","gists_url":"https://api.github.com/users/westeras/gists{/gist_id}","starred_url":"https://api.github.com/users/westeras/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/westeras/subscriptions","organizations_url":"https://api.github.com/users/westeras/orgs","repos_url":"https://api.github.com/users/westeras/repos","events_url":"https://api.github.com/users/westeras/events{/privacy}","received_events_url":"https://api.github.com/users/westeras/received_events","type":"User","site_admin":false},"repo":{"id":159565696,"node_id":"MDEwOlJlcG9zaXRvcnkxNTk1NjU2OTY=","name":"stream-registry","full_name":"westeras/stream-registry","private":false,"owner":{"login":"westeras","id":1512425,"node_id":"MDQ6VXNlcjE1MTI0MjU=","avatar_url":"https://avatars1.githubusercontent.com/u/1512425?v=4","gravatar_id":"","url":"https://api.github.com/users/westeras","html_url":"https://github.com/westeras","followers_url":"https://api.github.com/users/westeras/followers","following_url":"https://api.github.com/users/westeras/following{/other_user}","gists_url":"https://api.github.com/users/westeras/gists{/gist_id}","starred_url":"https://api.github.com/users/westeras/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/westeras/subscriptions","organizations_url":"https://api.github.com/users/westeras/orgs","repos_url":"https://api.github.com/users/westeras/repos","events_url":"https://api.github.com/users/westeras/events{/privacy}","received_events_url":"https://api.github.com/users/westeras/received_events","type":"User","site_admin":false},"html_url":"https://github.com/westeras/stream-registry","description":"Stream Governance and Orchestration","fork":true,"url":"https://api.github.com/repos/westeras/stream-registry","forks_url":"https://api.github.com/repos/westeras/stream-registry/forks","keys_url":"https://api.github.com/repos/westeras/stream-registry/keys{/key_id}","collaborators_url":"https://api.github.com/repos/westeras/stream-registry/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/westeras/stream-registry/teams","hooks_url":"https://api.github.com/repos/westeras/stream-registry/hooks","issue_events_url":"https://api.github.com/repos/westeras/stream-registry/issues/events{/number}","events_url":"https://api.github.com/repos/westeras/stream-registry/events","assignees_url":"https://api.github.com/repos/westeras/stream-registry/assignees{/user}","branches_url":"https://api.github.com/repos/westeras/stream-registry/branches{/branch}","tags_url":"https://api.github.com/repos/westeras/stream-registry/tags","blobs_url":"https://api.github.com/repos/westeras/stream-registry/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/westeras/stream-registry/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/westeras/stream-registry/git/refs{/sha}","trees_url":"https://api.github.com/repos/westeras/stream-registry/git/trees{/sha}","statuses_url":"https://api.github.com/repos/westeras/stream-registry/statuses/{sha}","languages_url":"https://api.github.com/repos/westeras/stream-registry/languages","stargazers_url":"https://api.github.com/repos/westeras/stream-registry/stargazers","contributors_url":"https://api.github.com/repos/westeras/stream-registry/contributors","subscribers_url":"https://api.github.com/repos/westeras/stream-registry/subscribers","subscription_url":"https://api.github.com/repos/westeras/stream-registry/subscription","commits_url":"https://api.github.com/repos/westeras/stream-registry/commits{/sha}","git_commits_url":"https://api.github.com/repos/westeras/stream-registry/git/commits{/sha}","comments_url":"https://api.github.com/repos/westeras/stream-registry/comments{/number}","issue_comment_url":"https://api.github.com/repos/westeras/stream-registry/issues/comments{/number}","contents_url":"https://api.github.com/repos/westeras/stream-registry/contents/{+path}","compare_url":"https://api.github.com/repos/westeras/stream-registry/compare/{base}...{head}","merges_url":"https://api.github.com/repos/westeras/stream-registry/merges","archive_url":"https://api.github.com/repos/westeras/stream-registry/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/westeras/stream-registry/downloads","issues_url":"https://api.github.com/repos/westeras/stream-registry/issues{/number}","pulls_url":"https://api.github.com/repos/westeras/stream-registry/pulls{/number}","milestones_url":"https://api.github.com/repos/westeras/stream-registry/milestones{/number}","notifications_url":"https://api.github.com/repos/westeras/stream-registry/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/westeras/stream-registry/labels{/name}","releases_url":"https://api.github.com/repos/westeras/stream-registry/releases{/id}","deployments_url":"https://api.github.com/repos/westeras/stream-registry/deployments","created_at":"2018-11-28T21:13:26Z","updated_at":"2018-12-10T21:37:55Z","pushed_at":"2018-12-11T17:18:27Z","git_url":"git://github.com/westeras/stream-registry.git","ssh_url":"git@github.com:westeras/stream-registry.git","clone_url":"https://github.com/westeras/stream-registry.git","svn_url":"https://github.com/westeras/stream-registry","homepage":"https://homeaway.github.io/stream-registry/","size":3108,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"homeaway:master","ref":"master","sha":"025686987f689279d08604751bb6d41862e401da","user":{"login":"homeaway","id":349558,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM0OTU1OA==","avatar_url":"https://avatars2.githubusercontent.com/u/349558?v=4","gravatar_id":"","url":"https://api.github.com/users/homeaway","html_url":"https://github.com/homeaway","followers_url":"https://api.github.com/users/homeaway/followers","following_url":"https://api.github.com/users/homeaway/following{/other_user}","gists_url":"https://api.github.com/users/homeaway/gists{/gist_id}","starred_url":"https://api.github.com/users/homeaway/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/homeaway/subscriptions","organizations_url":"https://api.github.com/users/homeaway/orgs","repos_url":"https://api.github.com/users/homeaway/repos","events_url":"https://api.github.com/users/homeaway/events{/privacy}","received_events_url":"https://api.github.com/users/homeaway/received_events","type":"Organization","site_admin":false},"repo":{"id":159537834,"node_id":"MDEwOlJlcG9zaXRvcnkxNTk1Mzc4MzQ=","name":"stream-registry","full_name":"homeaway/stream-registry","private":false,"owner":{"login":"homeaway","id":349558,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM0OTU1OA==","avatar_url":"https://avatars2.githubusercontent.com/u/349558?v=4","gravatar_id":"","url":"https://api.github.com/users/homeaway","html_url":"https://github.com/homeaway","followers_url":"https://api.github.com/users/homeaway/followers","following_url":"https://api.github.com/users/homeaway/following{/other_user}","gists_url":"https://api.github.com/users/homeaway/gists{/gist_id}","starred_url":"https://api.github.com/users/homeaway/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/homeaway/subscriptions","organizations_url":"https://api.github.com/users/homeaway/orgs","repos_url":"https://api.github.com/users/homeaway/repos","events_url":"https://api.github.com/users/homeaway/events{/privacy}","received_events_url":"https://api.github.com/users/homeaway/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/homeaway/stream-registry","description":"Stream Discovery and Orchestration","fork":false,"url":"https://api.github.com/repos/homeaway/stream-registry","forks_url":"https://api.github.com/repos/homeaway/stream-registry/forks","keys_url":"https://api.github.com/repos/homeaway/stream-registry/keys{/key_id}","collaborators_url":"https://api.github.com/repos/homeaway/stream-registry/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/homeaway/stream-registry/teams","hooks_url":"https://api.github.com/repos/homeaway/stream-registry/hooks","issue_events_url":"https://api.github.com/repos/homeaway/stream-registry/issues/events{/number}","events_url":"https://api.github.com/repos/homeaway/stream-registry/events","assignees_url":"https://api.github.com/repos/homeaway/stream-registry/assignees{/user}","branches_url":"https://api.github.com/repos/homeaway/stream-registry/branches{/branch}","tags_url":"https://api.github.com/repos/homeaway/stream-registry/tags","blobs_url":"https://api.github.com/repos/homeaway/stream-registry/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/homeaway/stream-registry/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/homeaway/stream-registry/git/refs{/sha}","trees_url":"https://api.github.com/repos/homeaway/stream-registry/git/trees{/sha}","statuses_url":"https://api.github.com/repos/homeaway/stream-registry/statuses/{sha}","languages_url":"https://api.github.com/repos/homeaway/stream-registry/languages","stargazers_url":"https://api.github.com/repos/homeaway/stream-registry/stargazers","contributors_url":"https://api.github.com/repos/homeaway/stream-registry/contributors","subscribers_url":"https://api.github.com/repos/homeaway/stream-registry/subscribers","subscription_url":"https://api.github.com/repos/homeaway/stream-registry/subscription","commits_url":"https://api.github.com/repos/homeaway/stream-registry/commits{/sha}","git_commits_url":"https://api.github.com/repos/homeaway/stream-registry/git/commits{/sha}","comments_url":"https://api.github.com/repos/homeaway/stream-registry/comments{/number}","issue_comment_url":"https://api.github.com/repos/homeaway/stream-registry/issues/comments{/number}","contents_url":"https://api.github.com/repos/homeaway/stream-registry/contents/{+path}","compare_url":"https://api.github.com/repos/homeaway/stream-registry/compare/{base}...{head}","merges_url":"https://api.github.com/repos/homeaway/stream-registry/merges","archive_url":"https://api.github.com/repos/homeaway/stream-registry/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/homeaway/stream-registry/downloads","issues_url":"https://api.github.com/repos/homeaway/stream-registry/issues{/number}","pulls_url":"https://api.github.com/repos/homeaway/stream-registry/pulls{/number}","milestones_url":"https://api.github.com/repos/homeaway/stream-registry/milestones{/number}","notifications_url":"https://api.github.com/repos/homeaway/stream-registry/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/homeaway/stream-registry/labels{/name}","releases_url":"https://api.github.com/repos/homeaway/stream-registry/releases{/id}","deployments_url":"https://api.github.com/repos/homeaway/stream-registry/deployments","created_at":"2018-11-28T17:12:11Z","updated_at":"2018-12-04T19:39:27Z","pushed_at":"2018-12-11T17:18:29Z","git_url":"git://github.com/homeaway/stream-registry.git","ssh_url":"git@github.com:homeaway/stream-registry.git","clone_url":"https://github.com/homeaway/stream-registry.git","svn_url":"https://github.com/homeaway/stream-registry","homepage":"https://homeaway.github.io/stream-registry/","size":3115,"stargazers_count":21,"watchers_count":21,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":6,"mirror_url":null,"archived":false,"open_issues_count":36,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":6,"open_issues":36,"watchers":21,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/homeaway/stream-registry/pulls/41"},"html":{"href":"https://github.com/homeaway/stream-registry/pull/41"},"issue":{"href":"https://api.github.com/repos/homeaway/stream-registry/issues/41"},"comments":{"href":"https://api.github.com/repos/homeaway/stream-registry/issues/41/comments"},"review_comments":{"href":"https://api.github.com/repos/homeaway/stream-registry/pulls/41/comments"},"review_comment":{"href":"https://api.github.com/repos/homeaway/stream-registry/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/homeaway/stream-registry/pulls/41/commits"},"statuses":{"href":"https://api.github.com/repos/homeaway/stream-registry/statuses/b4bfc9e9e999c58c22a45a7604afe8c22d5b4d3d"}},"author_association":"NONE"}}
{"actor":{"display_login":"westeras"}}