{"action":"created","comment":{"url":"https://api.github.com/repos/apache/incubator-pirk/pulls/comments/80029052","id":80029052,"diff_hunk":"@@ -0,0 +1,5 @@\n+org.apache.pirk.responder.wideskies.mapreduce.MapReduceResponder","path":"src/main/resources/META-INF/services/org.apache.pirk.responder.wideskies.spi.ResponderPlugin","position":1,"original_position":1,"commit_id":"b96b8c8ad9e5b418ce2d4f726197873a2fa95167","original_commit_id":"b96b8c8ad9e5b418ce2d4f726197873a2fa95167","user":{"login":"DarinJ","id":6180638,"avatar_url":"https://avatars.githubusercontent.com/u/6180638?v=3","gravatar_id":"","url":"https://api.github.com/users/DarinJ","html_url":"https://github.com/DarinJ","followers_url":"https://api.github.com/users/DarinJ/followers","following_url":"https://api.github.com/users/DarinJ/following{/other_user}","gists_url":"https://api.github.com/users/DarinJ/gists{/gist_id}","starred_url":"https://api.github.com/users/DarinJ/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DarinJ/subscriptions","organizations_url":"https://api.github.com/users/DarinJ/orgs","repos_url":"https://api.github.com/users/DarinJ/repos","events_url":"https://api.github.com/users/DarinJ/events{/privacy}","received_events_url":"https://api.github.com/users/DarinJ/received_events","type":"User","site_admin":false},"body":"@ellisonanne the service-plugin model allows better extensibility than pure reflection and is a well known pattern so should be easier for others to develop new responders. \r\n\r\nThis means that we keep platform designators and a developer for a new responder adds his/her own designator via `getPlatformName` which will be available when the jar is on the class path.  (I could actually put those into the command line but I won't as the config is in flux - todo I guess). \r\n\r\nIt also allows a shorter command line \r\n```\r\n-p spark\r\n```\r\nvs \r\n```\r\n-l org.apache.pirk.responder.wideskies.spark.SparkResponderLauncher\r\n```\r\nwith the same benefits.","created_at":"2016-09-22T12:29:17Z","updated_at":"2016-09-22T12:29:17Z","html_url":"https://github.com/apache/incubator-pirk/pull/93#discussion_r80029052","pull_request_url":"https://api.github.com/repos/apache/incubator-pirk/pulls/93","_links":{"self":{"href":"https://api.github.com/repos/apache/incubator-pirk/pulls/comments/80029052"},"html":{"href":"https://github.com/apache/incubator-pirk/pull/93#discussion_r80029052"},"pull_request":{"href":"https://api.github.com/repos/apache/incubator-pirk/pulls/93"}}},"pull_request":{"url":"https://api.github.com/repos/apache/incubator-pirk/pulls/93","id":85741577,"html_url":"https://github.com/apache/incubator-pirk/pull/93","diff_url":"https://github.com/apache/incubator-pirk/pull/93.diff","patch_url":"https://github.com/apache/incubator-pirk/pull/93.patch","issue_url":"https://api.github.com/repos/apache/incubator-pirk/issues/93","number":93,"state":"open","locked":false,"title":"WIP-Pirk 63-DO NOT MERGE","user":{"login":"DarinJ","id":6180638,"avatar_url":"https://avatars.githubusercontent.com/u/6180638?v=3","gravatar_id":"","url":"https://api.github.com/users/DarinJ","html_url":"https://github.com/DarinJ","followers_url":"https://api.github.com/users/DarinJ/followers","following_url":"https://api.github.com/users/DarinJ/following{/other_user}","gists_url":"https://api.github.com/users/DarinJ/gists{/gist_id}","starred_url":"https://api.github.com/users/DarinJ/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DarinJ/subscriptions","organizations_url":"https://api.github.com/users/DarinJ/orgs","repos_url":"https://api.github.com/users/DarinJ/repos","events_url":"https://api.github.com/users/DarinJ/events{/privacy}","received_events_url":"https://api.github.com/users/DarinJ/received_events","type":"User","site_admin":false},"body":"This is a WIP for [PIRK-63](https://issues.apache.org/jira/browse/PIRK-63) to open the door to other responders without having to modify the actual code of Pirk.  It's submitted for feedback only, please DO NOT MERGE.  I've only tested standalone mode.\r\n    \r\nIt deprecates the \"platform\" CLI option in favor of the \"launcher\" option which is the name of a class implementing the `ResponderLauncher` interface which will invoke the run method via reflection.  This allows a developer of a different responder to merely place a jar on the classpath and specify the appropriate `ResponderLauncher` on the classpath.\r\n    \r\nThe \"platform\" CLI option is still made available.  However, I removed the explicit dependencies in favor of using reflection.  This was done in anticipation other refactoring the build into submodules, though this does admittedly make the code more fragile.\r\n\r\nResponderDriver had no unit tests, and unfortunately I saw no good way to create good ones for this particular change, especially as it required multiple frameworks to run.\r\n\r\nI should say that another possible route here is to have each framework responder implement their own ResponderDriver.  We could provide some utilities to check the minimum Pirk required options are set, but leave the rest to the implementation of the responder.  It would clean up the ResponderCLI and ResponderProps which are rather bloated and might continue to grow if left unchecked.","created_at":"2016-09-19T06:05:22Z","updated_at":"2016-09-22T12:29:17Z","closed_at":null,"merged_at":null,"merge_commit_sha":"56399222db506c44864e0760eb824c60ea9f25b3","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/apache/incubator-pirk/pulls/93/commits","review_comments_url":"https://api.github.com/repos/apache/incubator-pirk/pulls/93/comments","review_comment_url":"https://api.github.com/repos/apache/incubator-pirk/pulls/comments{/number}","comments_url":"https://api.github.com/repos/apache/incubator-pirk/issues/93/comments","statuses_url":"https://api.github.com/repos/apache/incubator-pirk/statuses/b96b8c8ad9e5b418ce2d4f726197873a2fa95167","head":{"label":"DarinJ:Pirk-63","ref":"Pirk-63","sha":"b96b8c8ad9e5b418ce2d4f726197873a2fa95167","user":{"login":"DarinJ","id":6180638,"avatar_url":"https://avatars.githubusercontent.com/u/6180638?v=3","gravatar_id":"","url":"https://api.github.com/users/DarinJ","html_url":"https://github.com/DarinJ","followers_url":"https://api.github.com/users/DarinJ/followers","following_url":"https://api.github.com/users/DarinJ/following{/other_user}","gists_url":"https://api.github.com/users/DarinJ/gists{/gist_id}","starred_url":"https://api.github.com/users/DarinJ/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DarinJ/subscriptions","organizations_url":"https://api.github.com/users/DarinJ/orgs","repos_url":"https://api.github.com/users/DarinJ/repos","events_url":"https://api.github.com/users/DarinJ/events{/privacy}","received_events_url":"https://api.github.com/users/DarinJ/received_events","type":"User","site_admin":false},"repo":{"id":68059695,"name":"incubator-pirk","full_name":"DarinJ/incubator-pirk","owner":{"login":"DarinJ","id":6180638,"avatar_url":"https://avatars.githubusercontent.com/u/6180638?v=3","gravatar_id":"","url":"https://api.github.com/users/DarinJ","html_url":"https://github.com/DarinJ","followers_url":"https://api.github.com/users/DarinJ/followers","following_url":"https://api.github.com/users/DarinJ/following{/other_user}","gists_url":"https://api.github.com/users/DarinJ/gists{/gist_id}","starred_url":"https://api.github.com/users/DarinJ/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DarinJ/subscriptions","organizations_url":"https://api.github.com/users/DarinJ/orgs","repos_url":"https://api.github.com/users/DarinJ/repos","events_url":"https://api.github.com/users/DarinJ/events{/privacy}","received_events_url":"https://api.github.com/users/DarinJ/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/DarinJ/incubator-pirk","description":"Mirror of Apache Pirk (Incubating)","fork":true,"url":"https://api.github.com/repos/DarinJ/incubator-pirk","forks_url":"https://api.github.com/repos/DarinJ/incubator-pirk/forks","keys_url":"https://api.github.com/repos/DarinJ/incubator-pirk/keys{/key_id}","collaborators_url":"https://api.github.com/repos/DarinJ/incubator-pirk/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/DarinJ/incubator-pirk/teams","hooks_url":"https://api.github.com/repos/DarinJ/incubator-pirk/hooks","issue_events_url":"https://api.github.com/repos/DarinJ/incubator-pirk/issues/events{/number}","events_url":"https://api.github.com/repos/DarinJ/incubator-pirk/events","assignees_url":"https://api.github.com/repos/DarinJ/incubator-pirk/assignees{/user}","branches_url":"https://api.github.com/repos/DarinJ/incubator-pirk/branches{/branch}","tags_url":"https://api.github.com/repos/DarinJ/incubator-pirk/tags","blobs_url":"https://api.github.com/repos/DarinJ/incubator-pirk/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/DarinJ/incubator-pirk/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/DarinJ/incubator-pirk/git/refs{/sha}","trees_url":"https://api.github.com/repos/DarinJ/incubator-pirk/git/trees{/sha}","statuses_url":"https://api.github.com/repos/DarinJ/incubator-pirk/statuses/{sha}","languages_url":"https://api.github.com/repos/DarinJ/incubator-pirk/languages","stargazers_url":"https://api.github.com/repos/DarinJ/incubator-pirk/stargazers","contributors_url":"https://api.github.com/repos/DarinJ/incubator-pirk/contributors","subscribers_url":"https://api.github.com/repos/DarinJ/incubator-pirk/subscribers","subscription_url":"https://api.github.com/repos/DarinJ/incubator-pirk/subscription","commits_url":"https://api.github.com/repos/DarinJ/incubator-pirk/commits{/sha}","git_commits_url":"https://api.github.com/repos/DarinJ/incubator-pirk/git/commits{/sha}","comments_url":"https://api.github.com/repos/DarinJ/incubator-pirk/comments{/number}","issue_comment_url":"https://api.github.com/repos/DarinJ/incubator-pirk/issues/comments{/number}","contents_url":"https://api.github.com/repos/DarinJ/incubator-pirk/contents/{+path}","compare_url":"https://api.github.com/repos/DarinJ/incubator-pirk/compare/{base}...{head}","merges_url":"https://api.github.com/repos/DarinJ/incubator-pirk/merges","archive_url":"https://api.github.com/repos/DarinJ/incubator-pirk/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/DarinJ/incubator-pirk/downloads","issues_url":"https://api.github.com/repos/DarinJ/incubator-pirk/issues{/number}","pulls_url":"https://api.github.com/repos/DarinJ/incubator-pirk/pulls{/number}","milestones_url":"https://api.github.com/repos/DarinJ/incubator-pirk/milestones{/number}","notifications_url":"https://api.github.com/repos/DarinJ/incubator-pirk/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/DarinJ/incubator-pirk/labels{/name}","releases_url":"https://api.github.com/repos/DarinJ/incubator-pirk/releases{/id}","deployments_url":"https://api.github.com/repos/DarinJ/incubator-pirk/deployments","created_at":"2016-09-13T00:38:25Z","updated_at":"2016-09-13T00:38:26Z","pushed_at":"2016-09-22T03:46:59Z","git_url":"git://github.com/DarinJ/incubator-pirk.git","ssh_url":"git@github.com:DarinJ/incubator-pirk.git","clone_url":"https://github.com/DarinJ/incubator-pirk.git","svn_url":"https://github.com/DarinJ/incubator-pirk","homepage":null,"size":362260,"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":"apache:master","ref":"master","sha":"0a8a27236d7f8d9c3beec93b7c2600baade259a7","user":{"login":"apache","id":47359,"avatar_url":"https://avatars.githubusercontent.com/u/47359?v=3","gravatar_id":"","url":"https://api.github.com/users/apache","html_url":"https://github.com/apache","followers_url":"https://api.github.com/users/apache/followers","following_url":"https://api.github.com/users/apache/following{/other_user}","gists_url":"https://api.github.com/users/apache/gists{/gist_id}","starred_url":"https://api.github.com/users/apache/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/apache/subscriptions","organizations_url":"https://api.github.com/users/apache/orgs","repos_url":"https://api.github.com/users/apache/repos","events_url":"https://api.github.com/users/apache/events{/privacy}","received_events_url":"https://api.github.com/users/apache/received_events","type":"Organization","site_admin":false},"repo":{"id":61468488,"name":"incubator-pirk","full_name":"apache/incubator-pirk","owner":{"login":"apache","id":47359,"avatar_url":"https://avatars.githubusercontent.com/u/47359?v=3","gravatar_id":"","url":"https://api.github.com/users/apache","html_url":"https://github.com/apache","followers_url":"https://api.github.com/users/apache/followers","following_url":"https://api.github.com/users/apache/following{/other_user}","gists_url":"https://api.github.com/users/apache/gists{/gist_id}","starred_url":"https://api.github.com/users/apache/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/apache/subscriptions","organizations_url":"https://api.github.com/users/apache/orgs","repos_url":"https://api.github.com/users/apache/repos","events_url":"https://api.github.com/users/apache/events{/privacy}","received_events_url":"https://api.github.com/users/apache/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/apache/incubator-pirk","description":"Mirror of Apache Pirk (Incubating)","fork":false,"url":"https://api.github.com/repos/apache/incubator-pirk","forks_url":"https://api.github.com/repos/apache/incubator-pirk/forks","keys_url":"https://api.github.com/repos/apache/incubator-pirk/keys{/key_id}","collaborators_url":"https://api.github.com/repos/apache/incubator-pirk/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/apache/incubator-pirk/teams","hooks_url":"https://api.github.com/repos/apache/incubator-pirk/hooks","issue_events_url":"https://api.github.com/repos/apache/incubator-pirk/issues/events{/number}","events_url":"https://api.github.com/repos/apache/incubator-pirk/events","assignees_url":"https://api.github.com/repos/apache/incubator-pirk/assignees{/user}","branches_url":"https://api.github.com/repos/apache/incubator-pirk/branches{/branch}","tags_url":"https://api.github.com/repos/apache/incubator-pirk/tags","blobs_url":"https://api.github.com/repos/apache/incubator-pirk/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/apache/incubator-pirk/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/apache/incubator-pirk/git/refs{/sha}","trees_url":"https://api.github.com/repos/apache/incubator-pirk/git/trees{/sha}","statuses_url":"https://api.github.com/repos/apache/incubator-pirk/statuses/{sha}","languages_url":"https://api.github.com/repos/apache/incubator-pirk/languages","stargazers_url":"https://api.github.com/repos/apache/incubator-pirk/stargazers","contributors_url":"https://api.github.com/repos/apache/incubator-pirk/contributors","subscribers_url":"https://api.github.com/repos/apache/incubator-pirk/subscribers","subscription_url":"https://api.github.com/repos/apache/incubator-pirk/subscription","commits_url":"https://api.github.com/repos/apache/incubator-pirk/commits{/sha}","git_commits_url":"https://api.github.com/repos/apache/incubator-pirk/git/commits{/sha}","comments_url":"https://api.github.com/repos/apache/incubator-pirk/comments{/number}","issue_comment_url":"https://api.github.com/repos/apache/incubator-pirk/issues/comments{/number}","contents_url":"https://api.github.com/repos/apache/incubator-pirk/contents/{+path}","compare_url":"https://api.github.com/repos/apache/incubator-pirk/compare/{base}...{head}","merges_url":"https://api.github.com/repos/apache/incubator-pirk/merges","archive_url":"https://api.github.com/repos/apache/incubator-pirk/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/apache/incubator-pirk/downloads","issues_url":"https://api.github.com/repos/apache/incubator-pirk/issues{/number}","pulls_url":"https://api.github.com/repos/apache/incubator-pirk/pulls{/number}","milestones_url":"https://api.github.com/repos/apache/incubator-pirk/milestones{/number}","notifications_url":"https://api.github.com/repos/apache/incubator-pirk/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/apache/incubator-pirk/labels{/name}","releases_url":"https://api.github.com/repos/apache/incubator-pirk/releases{/id}","deployments_url":"https://api.github.com/repos/apache/incubator-pirk/deployments","created_at":"2016-06-19T07:00:06Z","updated_at":"2016-09-14T18:50:35Z","pushed_at":"2016-09-22T03:46:59Z","git_url":"git://github.com/apache/incubator-pirk.git","ssh_url":"git@github.com:apache/incubator-pirk.git","clone_url":"https://github.com/apache/incubator-pirk.git","svn_url":"https://github.com/apache/incubator-pirk","homepage":null,"size":439517,"stargazers_count":15,"watchers_count":15,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":15,"mirror_url":"git://git.apache.org/incubator-pirk.git","open_issues_count":3,"forks":15,"open_issues":3,"watchers":15,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/apache/incubator-pirk/pulls/93"},"html":{"href":"https://github.com/apache/incubator-pirk/pull/93"},"issue":{"href":"https://api.github.com/repos/apache/incubator-pirk/issues/93"},"comments":{"href":"https://api.github.com/repos/apache/incubator-pirk/issues/93/comments"},"review_comments":{"href":"https://api.github.com/repos/apache/incubator-pirk/pulls/93/comments"},"review_comment":{"href":"https://api.github.com/repos/apache/incubator-pirk/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/apache/incubator-pirk/pulls/93/commits"},"statuses":{"href":"https://api.github.com/repos/apache/incubator-pirk/statuses/b96b8c8ad9e5b418ce2d4f726197873a2fa95167"}}}}
{"actor":{"display_login":"DarinJ"}}