{"action":"created","comment":{"url":"https://api.github.com/repos/DataTorrent/Apex/pulls/comments/36933595","id":36933595,"diff_hunk":"@@ -32,6 +34,52 @@\n @InterfaceStability.Evolving\n public interface AppData\n {\n+  interface Store<QUERY_TYPE> extends Operator.ActivationListener<OperatorContext>\n+  {\n+    /**\n+     * Gets the query connector which is used by the store operator to receive queries. If this method returns\n+     * null then this Store should have a separate query operator connected to it.\n+     * @return The query connector which is used by the store operator to receive queries.\n+     */\n+    public EmbeddableQueryInfoProvider<QUERY_TYPE> getEmbeddableQueryInfoProvider();\n+\n+    /**\n+     * Sets the query connector which is used by the store operator to receive queries.\n+     * @param embeddableQueryInfoProvider The query connector which is used by the store operator to receive queries.\n+     */\n+    public void setEmbeddableQueryInfoProvider(EmbeddableQueryInfoProvider<QUERY_TYPE> embeddableQueryInfoProvider);\n+  }\n+\n+  /**\n+   * This interface represents a query operator which can be embedded into an AppData data source. It is\n+   * required that {@link EmbeddableQueryInfoProvider}s receive queries asynchronously and emit queries on their output port\n+   * asynchronously.\n+   * @param <QUERY_TYPE> The type of the query emitted by the operator.\n+   */\n+  interface EmbeddableQueryInfoProvider<QUERY_TYPE> extends Operator, ConnectionInfoProvider, Operator.ActivationListener<OperatorContext>\n+  {\n+    /**\n+     * Gets the output port for queries.\n+     * @return The output port for queries.\n+     */\n+    public DefaultOutputPort<QUERY_TYPE> getOutputPort();\n+\n+    /**\n+     * This enables flushing data to the connector's output port asynchronously. This will be set to be true by\n+     * any Store which supports {@link EmbeddableQueryInfoProvider}s.\n+     * @param useEmitThread True if this {@link EmbeddableQueryInfoProvider} should use a separate thread to asynchronously\n+     * emit data on its output port. False if the {@link Operator} thread should be used to emit data on its output port.\n+     */\n+    public void setUseEmitThread(boolean useEmitThread);\n+\n+    /**\n+     * Gets whether or not this {@link EmbeddableQueryInfoProvider} uses a separate thread to emit data on its output port.\n+     * @return True if this {@link EmbeddableQueryInfoProvider} should use a separate thread to asynchronously\n+     * emit data on its output port. False if the {@link Operator} thread should be used to emit data on its output port.\n+     */\n+    public boolean getUseEmitThread();","path":"common/src/main/java/com/datatorrent/common/experimental/AppData.java","position":64,"original_position":64,"commit_id":"58d8f43384044e25b08a95c12a5dea7ade5ca823","original_commit_id":"58d8f43384044e25b08a95c12a5dea7ade5ca823","user":{"login":"davidyan74","id":4419148,"avatar_url":"https://avatars.githubusercontent.com/u/4419148?v=3","gravatar_id":"","url":"https://api.github.com/users/davidyan74","html_url":"https://github.com/davidyan74","followers_url":"https://api.github.com/users/davidyan74/followers","following_url":"https://api.github.com/users/davidyan74/following{/other_user}","gists_url":"https://api.github.com/users/davidyan74/gists{/gist_id}","starred_url":"https://api.github.com/users/davidyan74/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidyan74/subscriptions","organizations_url":"https://api.github.com/users/davidyan74/orgs","repos_url":"https://api.github.com/users/davidyan74/repos","events_url":"https://api.github.com/users/davidyan74/events{/privacy}","received_events_url":"https://api.github.com/users/davidyan74/received_events","type":"User","site_admin":false},"body":"Use isUseEmitThread() because it's a boolean getter.","created_at":"2015-08-13T01:28:53Z","updated_at":"2015-08-13T01:28:53Z","html_url":"https://github.com/DataTorrent/Apex/pull/118#discussion_r36933595","pull_request_url":"https://api.github.com/repos/DataTorrent/Apex/pulls/118","_links":{"self":{"href":"https://api.github.com/repos/DataTorrent/Apex/pulls/comments/36933595"},"html":{"href":"https://github.com/DataTorrent/Apex/pull/118#discussion_r36933595"},"pull_request":{"href":"https://api.github.com/repos/DataTorrent/Apex/pulls/118"}}},"pull_request":{"url":"https://api.github.com/repos/DataTorrent/Apex/pulls/118","id":41945243,"html_url":"https://github.com/DataTorrent/Apex/pull/118","diff_url":"https://github.com/DataTorrent/Apex/pull/118.diff","patch_url":"https://github.com/DataTorrent/Apex/pull/118.patch","issue_url":"https://api.github.com/repos/DataTorrent/Apex/issues/118","number":118,"state":"open","locked":false,"title":"Added Store interface to app data which enables embedding query conne…","user":{"login":"ilooner","id":8020165,"avatar_url":"https://avatars.githubusercontent.com/u/8020165?v=3","gravatar_id":"","url":"https://api.github.com/users/ilooner","html_url":"https://github.com/ilooner","followers_url":"https://api.github.com/users/ilooner/followers","following_url":"https://api.github.com/users/ilooner/following{/other_user}","gists_url":"https://api.github.com/users/ilooner/gists{/gist_id}","starred_url":"https://api.github.com/users/ilooner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ilooner/subscriptions","organizations_url":"https://api.github.com/users/ilooner/orgs","repos_url":"https://api.github.com/users/ilooner/repos","events_url":"https://api.github.com/users/ilooner/events{/privacy}","received_events_url":"https://api.github.com/users/ilooner/received_events","type":"User","site_admin":false},"body":"…ctors in the store.","created_at":"2015-08-08T00:52:50Z","updated_at":"2015-08-13T01:28:53Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f3a7e004c590dded98c1ab0c4a013273fe6d40b3","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/DataTorrent/Apex/pulls/118/commits","review_comments_url":"https://api.github.com/repos/DataTorrent/Apex/pulls/118/comments","review_comment_url":"https://api.github.com/repos/DataTorrent/Apex/pulls/comments{/number}","comments_url":"https://api.github.com/repos/DataTorrent/Apex/issues/118/comments","statuses_url":"https://api.github.com/repos/DataTorrent/Apex/statuses/58d8f43384044e25b08a95c12a5dea7ade5ca823","head":{"label":"ilooner:APEX-39","ref":"APEX-39","sha":"58d8f43384044e25b08a95c12a5dea7ade5ca823","user":{"login":"ilooner","id":8020165,"avatar_url":"https://avatars.githubusercontent.com/u/8020165?v=3","gravatar_id":"","url":"https://api.github.com/users/ilooner","html_url":"https://github.com/ilooner","followers_url":"https://api.github.com/users/ilooner/followers","following_url":"https://api.github.com/users/ilooner/following{/other_user}","gists_url":"https://api.github.com/users/ilooner/gists{/gist_id}","starred_url":"https://api.github.com/users/ilooner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ilooner/subscriptions","organizations_url":"https://api.github.com/users/ilooner/orgs","repos_url":"https://api.github.com/users/ilooner/repos","events_url":"https://api.github.com/users/ilooner/events{/privacy}","received_events_url":"https://api.github.com/users/ilooner/received_events","type":"User","site_admin":false},"repo":{"id":38335191,"name":"Apex","full_name":"ilooner/Apex","owner":{"login":"ilooner","id":8020165,"avatar_url":"https://avatars.githubusercontent.com/u/8020165?v=3","gravatar_id":"","url":"https://api.github.com/users/ilooner","html_url":"https://github.com/ilooner","followers_url":"https://api.github.com/users/ilooner/followers","following_url":"https://api.github.com/users/ilooner/following{/other_user}","gists_url":"https://api.github.com/users/ilooner/gists{/gist_id}","starred_url":"https://api.github.com/users/ilooner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ilooner/subscriptions","organizations_url":"https://api.github.com/users/ilooner/orgs","repos_url":"https://api.github.com/users/ilooner/repos","events_url":"https://api.github.com/users/ilooner/events{/privacy}","received_events_url":"https://api.github.com/users/ilooner/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ilooner/Apex","description":"Open Core for DataTorrent RTS","fork":true,"url":"https://api.github.com/repos/ilooner/Apex","forks_url":"https://api.github.com/repos/ilooner/Apex/forks","keys_url":"https://api.github.com/repos/ilooner/Apex/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ilooner/Apex/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ilooner/Apex/teams","hooks_url":"https://api.github.com/repos/ilooner/Apex/hooks","issue_events_url":"https://api.github.com/repos/ilooner/Apex/issues/events{/number}","events_url":"https://api.github.com/repos/ilooner/Apex/events","assignees_url":"https://api.github.com/repos/ilooner/Apex/assignees{/user}","branches_url":"https://api.github.com/repos/ilooner/Apex/branches{/branch}","tags_url":"https://api.github.com/repos/ilooner/Apex/tags","blobs_url":"https://api.github.com/repos/ilooner/Apex/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ilooner/Apex/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ilooner/Apex/git/refs{/sha}","trees_url":"https://api.github.com/repos/ilooner/Apex/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ilooner/Apex/statuses/{sha}","languages_url":"https://api.github.com/repos/ilooner/Apex/languages","stargazers_url":"https://api.github.com/repos/ilooner/Apex/stargazers","contributors_url":"https://api.github.com/repos/ilooner/Apex/contributors","subscribers_url":"https://api.github.com/repos/ilooner/Apex/subscribers","subscription_url":"https://api.github.com/repos/ilooner/Apex/subscription","commits_url":"https://api.github.com/repos/ilooner/Apex/commits{/sha}","git_commits_url":"https://api.github.com/repos/ilooner/Apex/git/commits{/sha}","comments_url":"https://api.github.com/repos/ilooner/Apex/comments{/number}","issue_comment_url":"https://api.github.com/repos/ilooner/Apex/issues/comments{/number}","contents_url":"https://api.github.com/repos/ilooner/Apex/contents/{+path}","compare_url":"https://api.github.com/repos/ilooner/Apex/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ilooner/Apex/merges","archive_url":"https://api.github.com/repos/ilooner/Apex/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ilooner/Apex/downloads","issues_url":"https://api.github.com/repos/ilooner/Apex/issues{/number}","pulls_url":"https://api.github.com/repos/ilooner/Apex/pulls{/number}","milestones_url":"https://api.github.com/repos/ilooner/Apex/milestones{/number}","notifications_url":"https://api.github.com/repos/ilooner/Apex/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ilooner/Apex/labels{/name}","releases_url":"https://api.github.com/repos/ilooner/Apex/releases{/id}","created_at":"2015-06-30T21:57:41Z","updated_at":"2015-06-30T21:57:43Z","pushed_at":"2015-08-13T01:02:06Z","git_url":"git://github.com/ilooner/Apex.git","ssh_url":"git@github.com:ilooner/Apex.git","clone_url":"https://github.com/ilooner/Apex.git","svn_url":"https://github.com/ilooner/Apex","homepage":null,"size":14325,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"DataTorrent:feature-AppData","ref":"feature-AppData","sha":"3c0076a51be71be4ac0e74e6f5b0d3763a148b3e","user":{"login":"DataTorrent","id":4400063,"avatar_url":"https://avatars.githubusercontent.com/u/4400063?v=3","gravatar_id":"","url":"https://api.github.com/users/DataTorrent","html_url":"https://github.com/DataTorrent","followers_url":"https://api.github.com/users/DataTorrent/followers","following_url":"https://api.github.com/users/DataTorrent/following{/other_user}","gists_url":"https://api.github.com/users/DataTorrent/gists{/gist_id}","starred_url":"https://api.github.com/users/DataTorrent/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DataTorrent/subscriptions","organizations_url":"https://api.github.com/users/DataTorrent/orgs","repos_url":"https://api.github.com/users/DataTorrent/repos","events_url":"https://api.github.com/users/DataTorrent/events{/privacy}","received_events_url":"https://api.github.com/users/DataTorrent/received_events","type":"Organization","site_admin":false},"repo":{"id":36766032,"name":"Apex","full_name":"DataTorrent/Apex","owner":{"login":"DataTorrent","id":4400063,"avatar_url":"https://avatars.githubusercontent.com/u/4400063?v=3","gravatar_id":"","url":"https://api.github.com/users/DataTorrent","html_url":"https://github.com/DataTorrent","followers_url":"https://api.github.com/users/DataTorrent/followers","following_url":"https://api.github.com/users/DataTorrent/following{/other_user}","gists_url":"https://api.github.com/users/DataTorrent/gists{/gist_id}","starred_url":"https://api.github.com/users/DataTorrent/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DataTorrent/subscriptions","organizations_url":"https://api.github.com/users/DataTorrent/orgs","repos_url":"https://api.github.com/users/DataTorrent/repos","events_url":"https://api.github.com/users/DataTorrent/events{/privacy}","received_events_url":"https://api.github.com/users/DataTorrent/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/DataTorrent/Apex","description":"Open Core for DataTorrent RTS","fork":false,"url":"https://api.github.com/repos/DataTorrent/Apex","forks_url":"https://api.github.com/repos/DataTorrent/Apex/forks","keys_url":"https://api.github.com/repos/DataTorrent/Apex/keys{/key_id}","collaborators_url":"https://api.github.com/repos/DataTorrent/Apex/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/DataTorrent/Apex/teams","hooks_url":"https://api.github.com/repos/DataTorrent/Apex/hooks","issue_events_url":"https://api.github.com/repos/DataTorrent/Apex/issues/events{/number}","events_url":"https://api.github.com/repos/DataTorrent/Apex/events","assignees_url":"https://api.github.com/repos/DataTorrent/Apex/assignees{/user}","branches_url":"https://api.github.com/repos/DataTorrent/Apex/branches{/branch}","tags_url":"https://api.github.com/repos/DataTorrent/Apex/tags","blobs_url":"https://api.github.com/repos/DataTorrent/Apex/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/DataTorrent/Apex/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/DataTorrent/Apex/git/refs{/sha}","trees_url":"https://api.github.com/repos/DataTorrent/Apex/git/trees{/sha}","statuses_url":"https://api.github.com/repos/DataTorrent/Apex/statuses/{sha}","languages_url":"https://api.github.com/repos/DataTorrent/Apex/languages","stargazers_url":"https://api.github.com/repos/DataTorrent/Apex/stargazers","contributors_url":"https://api.github.com/repos/DataTorrent/Apex/contributors","subscribers_url":"https://api.github.com/repos/DataTorrent/Apex/subscribers","subscription_url":"https://api.github.com/repos/DataTorrent/Apex/subscription","commits_url":"https://api.github.com/repos/DataTorrent/Apex/commits{/sha}","git_commits_url":"https://api.github.com/repos/DataTorrent/Apex/git/commits{/sha}","comments_url":"https://api.github.com/repos/DataTorrent/Apex/comments{/number}","issue_comment_url":"https://api.github.com/repos/DataTorrent/Apex/issues/comments{/number}","contents_url":"https://api.github.com/repos/DataTorrent/Apex/contents/{+path}","compare_url":"https://api.github.com/repos/DataTorrent/Apex/compare/{base}...{head}","merges_url":"https://api.github.com/repos/DataTorrent/Apex/merges","archive_url":"https://api.github.com/repos/DataTorrent/Apex/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/DataTorrent/Apex/downloads","issues_url":"https://api.github.com/repos/DataTorrent/Apex/issues{/number}","pulls_url":"https://api.github.com/repos/DataTorrent/Apex/pulls{/number}","milestones_url":"https://api.github.com/repos/DataTorrent/Apex/milestones{/number}","notifications_url":"https://api.github.com/repos/DataTorrent/Apex/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/DataTorrent/Apex/labels{/name}","releases_url":"https://api.github.com/repos/DataTorrent/Apex/releases{/id}","created_at":"2015-06-02T22:41:04Z","updated_at":"2015-08-11T14:10:47Z","pushed_at":"2015-08-13T01:02:06Z","git_url":"git://github.com/DataTorrent/Apex.git","ssh_url":"git@github.com:DataTorrent/Apex.git","clone_url":"https://github.com/DataTorrent/Apex.git","svn_url":"https://github.com/DataTorrent/Apex","homepage":null,"size":40145,"stargazers_count":11,"watchers_count":11,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":29,"mirror_url":null,"open_issues_count":6,"forks":29,"open_issues":6,"watchers":11,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/DataTorrent/Apex/pulls/118"},"html":{"href":"https://github.com/DataTorrent/Apex/pull/118"},"issue":{"href":"https://api.github.com/repos/DataTorrent/Apex/issues/118"},"comments":{"href":"https://api.github.com/repos/DataTorrent/Apex/issues/118/comments"},"review_comments":{"href":"https://api.github.com/repos/DataTorrent/Apex/pulls/118/comments"},"review_comment":{"href":"https://api.github.com/repos/DataTorrent/Apex/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/DataTorrent/Apex/pulls/118/commits"},"statuses":{"href":"https://api.github.com/repos/DataTorrent/Apex/statuses/58d8f43384044e25b08a95c12a5dea7ade5ca823"}}}}