{"action":"created","comment":{"url":"https://api.github.com/repos/Talend/components/pulls/comments/77373902","id":77373902,"diff_hunk":"@@ -15,42 +14,23 @@\n  * {@link Source} or {@link Sink}.\n  *\n  * <p>\n- * A {@code SourceOrSink} may be passed between partititions for distributed operation and therefore must be {@code Serializable}.\n- * This allows the {@code SourceOrSink} instance created in this \"main program\" to be sent (in serialized form) to remote worker\n- * machines and reconstituted for each batch of elements being processed. A {@code SourceOrSink} can have instance variable state,\n- * and non-transient instance variable state will be serialized in the main program and then deserialized on remote worker\n- * machines.\n+ * {@code SourceOrSink} implementations MUST be effectively immutable. The only acceptable use of mutable fields is to\n+ * cache the results of expensive operations, and such fields MUST be marked {@code transient}.\n  *\n  * <p>\n- * {@code SourceOrSink} implementations MUST be effectively immutable. The only acceptable use of mutable fields is to cache the\n- * results of expensive operations, and such fields MUST be marked {@code transient}.\n- *\n- * <p>\n- * {@code SourceOrSink} implementations should override {@link Object#toString}, as it will be used in important error and\n- * debugging messages.\n+ * {@code SourceOrSink} implementations should override {@link Object#toString}, as it will be used in important error\n+ * and debugging messages.\n  *\n  */\n-public interface SourceOrSink extends Serializable {\n-\n-    /**\n-     * Initialize based on the specified properties. This will typically store the {@link ComponentProperties} in the\n-     * object.\n-     */\n-    void initialize(RuntimeContainer container, ComponentProperties properties);\n-\n-    /**\n-     * Checks that this source or sink is valid, before it can be used. This will typically make a connection and return\n-     * the results of the connection establishment.\n-     */\n-    ValidationResult validate(RuntimeContainer container);","path":"components-api/src/main/java/org/talend/components/api/component/runtime/SourceOrSink.java","position":43,"original_position":43,"commit_id":"a1fde161933caaf7d179b8ca006397a1c5ed7ddf","original_commit_id":"a1fde161933caaf7d179b8ca006397a1c5ed7ddf","user":{"login":"sgandon","id":783286,"avatar_url":"https://avatars.githubusercontent.com/u/783286?v=3","gravatar_id":"","url":"https://api.github.com/users/sgandon","html_url":"https://github.com/sgandon","followers_url":"https://api.github.com/users/sgandon/followers","following_url":"https://api.github.com/users/sgandon/following{/other_user}","gists_url":"https://api.github.com/users/sgandon/gists{/gist_id}","starred_url":"https://api.github.com/users/sgandon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sgandon/subscriptions","organizations_url":"https://api.github.com/users/sgandon/orgs","repos_url":"https://api.github.com/users/sgandon/repos","events_url":"https://api.github.com/users/sgandon/events{/privacy}","received_events_url":"https://api.github.com/users/sgandon/received_events","type":"User","site_admin":false},"body":"Why did you remove the validate method here, as we need it for beam and use it today to do the integrity checks ?","created_at":"2016-09-02T16:23:36Z","updated_at":"2016-09-02T16:23:36Z","html_url":"https://github.com/Talend/components/pull/221#discussion_r77373902","pull_request_url":"https://api.github.com/repos/Talend/components/pulls/221","_links":{"self":{"href":"https://api.github.com/repos/Talend/components/pulls/comments/77373902"},"html":{"href":"https://github.com/Talend/components/pull/221#discussion_r77373902"},"pull_request":{"href":"https://api.github.com/repos/Talend/components/pulls/221"}}},"pull_request":{"url":"https://api.github.com/repos/Talend/components/pulls/221","id":81787186,"html_url":"https://github.com/Talend/components/pull/221","diff_url":"https://github.com/Talend/components/pull/221.diff","patch_url":"https://github.com/Talend/components/pull/221.patch","issue_url":"https://api.github.com/repos/Talend/components/issues/221","number":221,"state":"open","locked":false,"title":"TCOMP-234: added SetupRuntime and SetupComponent","user":{"login":"chmyga","id":18050008,"avatar_url":"https://avatars.githubusercontent.com/u/18050008?v=3","gravatar_id":"","url":"https://api.github.com/users/chmyga","html_url":"https://github.com/chmyga","followers_url":"https://api.github.com/users/chmyga/followers","following_url":"https://api.github.com/users/chmyga/following{/other_user}","gists_url":"https://api.github.com/users/chmyga/gists{/gist_id}","starred_url":"https://api.github.com/users/chmyga/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chmyga/subscriptions","organizations_url":"https://api.github.com/users/chmyga/orgs","repos_url":"https://api.github.com/users/chmyga/repos","events_url":"https://api.github.com/users/chmyga/events{/privacy}","received_events_url":"https://api.github.com/users/chmyga/received_events","type":"User","site_admin":false},"body":"Extracted initialize and validate methods to Runtime interface.\r\nAdded SetupRuntime and SetupComponent interfaces.\r\nExtended SourceOrSink interface from Runtime interface.\r\nAdded setup method to SetupRuntime without any arguments, because they will be passed to initialize method of parent Runtime interface.","created_at":"2016-08-18T09:51:19Z","updated_at":"2016-09-02T16:23:36Z","closed_at":null,"merged_at":null,"merge_commit_sha":"5a918d426fe6b1b7b80da012c20a0a6e8f716a58","assignee":{"login":"sgandon","id":783286,"avatar_url":"https://avatars.githubusercontent.com/u/783286?v=3","gravatar_id":"","url":"https://api.github.com/users/sgandon","html_url":"https://github.com/sgandon","followers_url":"https://api.github.com/users/sgandon/followers","following_url":"https://api.github.com/users/sgandon/following{/other_user}","gists_url":"https://api.github.com/users/sgandon/gists{/gist_id}","starred_url":"https://api.github.com/users/sgandon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sgandon/subscriptions","organizations_url":"https://api.github.com/users/sgandon/orgs","repos_url":"https://api.github.com/users/sgandon/repos","events_url":"https://api.github.com/users/sgandon/events{/privacy}","received_events_url":"https://api.github.com/users/sgandon/received_events","type":"User","site_admin":false},"assignees":[{"login":"sgandon","id":783286,"avatar_url":"https://avatars.githubusercontent.com/u/783286?v=3","gravatar_id":"","url":"https://api.github.com/users/sgandon","html_url":"https://github.com/sgandon","followers_url":"https://api.github.com/users/sgandon/followers","following_url":"https://api.github.com/users/sgandon/following{/other_user}","gists_url":"https://api.github.com/users/sgandon/gists{/gist_id}","starred_url":"https://api.github.com/users/sgandon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sgandon/subscriptions","organizations_url":"https://api.github.com/users/sgandon/orgs","repos_url":"https://api.github.com/users/sgandon/repos","events_url":"https://api.github.com/users/sgandon/events{/privacy}","received_events_url":"https://api.github.com/users/sgandon/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/Talend/components/pulls/221/commits","review_comments_url":"https://api.github.com/repos/Talend/components/pulls/221/comments","review_comment_url":"https://api.github.com/repos/Talend/components/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Talend/components/issues/221/comments","statuses_url":"https://api.github.com/repos/Talend/components/statuses/a1fde161933caaf7d179b8ca006397a1c5ed7ddf","head":{"label":"Talend:feature/TCOMP-234_run_components_without_connectors","ref":"feature/TCOMP-234_run_components_without_connectors","sha":"a1fde161933caaf7d179b8ca006397a1c5ed7ddf","user":{"login":"Talend","id":459687,"avatar_url":"https://avatars.githubusercontent.com/u/459687?v=3","gravatar_id":"","url":"https://api.github.com/users/Talend","html_url":"https://github.com/Talend","followers_url":"https://api.github.com/users/Talend/followers","following_url":"https://api.github.com/users/Talend/following{/other_user}","gists_url":"https://api.github.com/users/Talend/gists{/gist_id}","starred_url":"https://api.github.com/users/Talend/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Talend/subscriptions","organizations_url":"https://api.github.com/users/Talend/orgs","repos_url":"https://api.github.com/users/Talend/repos","events_url":"https://api.github.com/users/Talend/events{/privacy}","received_events_url":"https://api.github.com/users/Talend/received_events","type":"Organization","site_admin":false},"repo":{"id":39855061,"name":"components","full_name":"Talend/components","owner":{"login":"Talend","id":459687,"avatar_url":"https://avatars.githubusercontent.com/u/459687?v=3","gravatar_id":"","url":"https://api.github.com/users/Talend","html_url":"https://github.com/Talend","followers_url":"https://api.github.com/users/Talend/followers","following_url":"https://api.github.com/users/Talend/following{/other_user}","gists_url":"https://api.github.com/users/Talend/gists{/gist_id}","starred_url":"https://api.github.com/users/Talend/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Talend/subscriptions","organizations_url":"https://api.github.com/users/Talend/orgs","repos_url":"https://api.github.com/users/Talend/repos","events_url":"https://api.github.com/users/Talend/events{/privacy}","received_events_url":"https://api.github.com/users/Talend/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Talend/components","description":"Talend component infrastructure and public components","fork":false,"url":"https://api.github.com/repos/Talend/components","forks_url":"https://api.github.com/repos/Talend/components/forks","keys_url":"https://api.github.com/repos/Talend/components/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Talend/components/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Talend/components/teams","hooks_url":"https://api.github.com/repos/Talend/components/hooks","issue_events_url":"https://api.github.com/repos/Talend/components/issues/events{/number}","events_url":"https://api.github.com/repos/Talend/components/events","assignees_url":"https://api.github.com/repos/Talend/components/assignees{/user}","branches_url":"https://api.github.com/repos/Talend/components/branches{/branch}","tags_url":"https://api.github.com/repos/Talend/components/tags","blobs_url":"https://api.github.com/repos/Talend/components/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Talend/components/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Talend/components/git/refs{/sha}","trees_url":"https://api.github.com/repos/Talend/components/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Talend/components/statuses/{sha}","languages_url":"https://api.github.com/repos/Talend/components/languages","stargazers_url":"https://api.github.com/repos/Talend/components/stargazers","contributors_url":"https://api.github.com/repos/Talend/components/contributors","subscribers_url":"https://api.github.com/repos/Talend/components/subscribers","subscription_url":"https://api.github.com/repos/Talend/components/subscription","commits_url":"https://api.github.com/repos/Talend/components/commits{/sha}","git_commits_url":"https://api.github.com/repos/Talend/components/git/commits{/sha}","comments_url":"https://api.github.com/repos/Talend/components/comments{/number}","issue_comment_url":"https://api.github.com/repos/Talend/components/issues/comments{/number}","contents_url":"https://api.github.com/repos/Talend/components/contents/{+path}","compare_url":"https://api.github.com/repos/Talend/components/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Talend/components/merges","archive_url":"https://api.github.com/repos/Talend/components/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Talend/components/downloads","issues_url":"https://api.github.com/repos/Talend/components/issues{/number}","pulls_url":"https://api.github.com/repos/Talend/components/pulls{/number}","milestones_url":"https://api.github.com/repos/Talend/components/milestones{/number}","notifications_url":"https://api.github.com/repos/Talend/components/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Talend/components/labels{/name}","releases_url":"https://api.github.com/repos/Talend/components/releases{/id}","deployments_url":"https://api.github.com/repos/Talend/components/deployments","created_at":"2015-07-28T20:02:50Z","updated_at":"2016-07-27T18:33:38Z","pushed_at":"2016-09-02T15:15:12Z","git_url":"git://github.com/Talend/components.git","ssh_url":"git@github.com:Talend/components.git","clone_url":"https://github.com/Talend/components.git","svn_url":"https://github.com/Talend/components","homepage":null,"size":5371,"stargazers_count":5,"watchers_count":5,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":15,"mirror_url":null,"open_issues_count":7,"forks":15,"open_issues":7,"watchers":5,"default_branch":"master"}},"base":{"label":"Talend:feature/multiPRmerge/0.15.0","ref":"feature/multiPRmerge/0.15.0","sha":"153fe586a801312189ef6dccb26b3fdff1ad644b","user":{"login":"Talend","id":459687,"avatar_url":"https://avatars.githubusercontent.com/u/459687?v=3","gravatar_id":"","url":"https://api.github.com/users/Talend","html_url":"https://github.com/Talend","followers_url":"https://api.github.com/users/Talend/followers","following_url":"https://api.github.com/users/Talend/following{/other_user}","gists_url":"https://api.github.com/users/Talend/gists{/gist_id}","starred_url":"https://api.github.com/users/Talend/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Talend/subscriptions","organizations_url":"https://api.github.com/users/Talend/orgs","repos_url":"https://api.github.com/users/Talend/repos","events_url":"https://api.github.com/users/Talend/events{/privacy}","received_events_url":"https://api.github.com/users/Talend/received_events","type":"Organization","site_admin":false},"repo":{"id":39855061,"name":"components","full_name":"Talend/components","owner":{"login":"Talend","id":459687,"avatar_url":"https://avatars.githubusercontent.com/u/459687?v=3","gravatar_id":"","url":"https://api.github.com/users/Talend","html_url":"https://github.com/Talend","followers_url":"https://api.github.com/users/Talend/followers","following_url":"https://api.github.com/users/Talend/following{/other_user}","gists_url":"https://api.github.com/users/Talend/gists{/gist_id}","starred_url":"https://api.github.com/users/Talend/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Talend/subscriptions","organizations_url":"https://api.github.com/users/Talend/orgs","repos_url":"https://api.github.com/users/Talend/repos","events_url":"https://api.github.com/users/Talend/events{/privacy}","received_events_url":"https://api.github.com/users/Talend/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Talend/components","description":"Talend component infrastructure and public components","fork":false,"url":"https://api.github.com/repos/Talend/components","forks_url":"https://api.github.com/repos/Talend/components/forks","keys_url":"https://api.github.com/repos/Talend/components/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Talend/components/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Talend/components/teams","hooks_url":"https://api.github.com/repos/Talend/components/hooks","issue_events_url":"https://api.github.com/repos/Talend/components/issues/events{/number}","events_url":"https://api.github.com/repos/Talend/components/events","assignees_url":"https://api.github.com/repos/Talend/components/assignees{/user}","branches_url":"https://api.github.com/repos/Talend/components/branches{/branch}","tags_url":"https://api.github.com/repos/Talend/components/tags","blobs_url":"https://api.github.com/repos/Talend/components/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Talend/components/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Talend/components/git/refs{/sha}","trees_url":"https://api.github.com/repos/Talend/components/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Talend/components/statuses/{sha}","languages_url":"https://api.github.com/repos/Talend/components/languages","stargazers_url":"https://api.github.com/repos/Talend/components/stargazers","contributors_url":"https://api.github.com/repos/Talend/components/contributors","subscribers_url":"https://api.github.com/repos/Talend/components/subscribers","subscription_url":"https://api.github.com/repos/Talend/components/subscription","commits_url":"https://api.github.com/repos/Talend/components/commits{/sha}","git_commits_url":"https://api.github.com/repos/Talend/components/git/commits{/sha}","comments_url":"https://api.github.com/repos/Talend/components/comments{/number}","issue_comment_url":"https://api.github.com/repos/Talend/components/issues/comments{/number}","contents_url":"https://api.github.com/repos/Talend/components/contents/{+path}","compare_url":"https://api.github.com/repos/Talend/components/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Talend/components/merges","archive_url":"https://api.github.com/repos/Talend/components/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Talend/components/downloads","issues_url":"https://api.github.com/repos/Talend/components/issues{/number}","pulls_url":"https://api.github.com/repos/Talend/components/pulls{/number}","milestones_url":"https://api.github.com/repos/Talend/components/milestones{/number}","notifications_url":"https://api.github.com/repos/Talend/components/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Talend/components/labels{/name}","releases_url":"https://api.github.com/repos/Talend/components/releases{/id}","deployments_url":"https://api.github.com/repos/Talend/components/deployments","created_at":"2015-07-28T20:02:50Z","updated_at":"2016-07-27T18:33:38Z","pushed_at":"2016-09-02T15:15:12Z","git_url":"git://github.com/Talend/components.git","ssh_url":"git@github.com:Talend/components.git","clone_url":"https://github.com/Talend/components.git","svn_url":"https://github.com/Talend/components","homepage":null,"size":5371,"stargazers_count":5,"watchers_count":5,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":15,"mirror_url":null,"open_issues_count":7,"forks":15,"open_issues":7,"watchers":5,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Talend/components/pulls/221"},"html":{"href":"https://github.com/Talend/components/pull/221"},"issue":{"href":"https://api.github.com/repos/Talend/components/issues/221"},"comments":{"href":"https://api.github.com/repos/Talend/components/issues/221/comments"},"review_comments":{"href":"https://api.github.com/repos/Talend/components/pulls/221/comments"},"review_comment":{"href":"https://api.github.com/repos/Talend/components/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Talend/components/pulls/221/commits"},"statuses":{"href":"https://api.github.com/repos/Talend/components/statuses/a1fde161933caaf7d179b8ca006397a1c5ed7ddf"}}}}
{"actor":{"display_login":"sgandon"}}