{"action":"created","comment":{"url":"https://api.github.com/repos/twitter/heron/pulls/comments/66123474","id":66123474,"diff_hunk":"@@ -46,48 +46,26 @@ interfaces:\n \n Interface | Role | Examples\n :-------- |:---- |:--------\n-[`IConfigLoader`](/api/com/twitter/heron/spi/scheduler/IConfigLoader.html) | Parsing and loading of configuration for the scheduler | [Aurora](/api/scheduler/com/twitter/heron/scheduler/aurora/AuroraConfigLoader.html), [local](/api/scheduler/com/twitter/heron/scheduler/local/LocalConfigLoader.html)\n-[`ILauncher`](/api/com/twitter/heron/spi/scheduler/ILauncher.html) | Defines how the scheduler is launched | [Aurora](/api/scheduler/com/twitter/heron/scheduler/aurora/AuroraLauncher.html), [local](/api/scheduler/com/twitter/heron/scheduler/local/LocalLauncher.html)\n-[`IRuntimeManager`](/api/com/twitter/heron/spi/scheduler/IRuntimeManager.html) | Handles runtime tasks such as activating topologies, killing topologies, etc. | [Aurora](/api/scheduler/com/twitter/heron/scheduler/aurora/AuroraTopologyRuntimeManager.html), [local](/api/scheduler/com/twitter/heron/scheduler/local/LocalTopologyRuntimeManager.html)\n-[`IScheduler`](/api/com/twitter/heron/spi/scheduler/IScheduler.html) | Defines the scheduler object used to construct topologies | [local](/api/scheduler/com/twitter/heron/scheduler/local/LocalScheduler.html)\n-[`IUploader`](/api/com/twitter/heron/spi/scheduler/IUploader.html) | Uploads the topology to a shared location that must be accessible to the runtime environment of the topology | [local](/api/scheduler/com/twitter/heron/scheduler/local/LocalUploader.html)\n+[`IPacking`](/api/com/twitter/heron/spi/packing/IPacking.html) | Defines the algorithm used to generate physical plan for a topology. | [RoundRobin](/api/com/twitter/heron/packing/roundrobin/RoundRobinPacking.html)\n+[`ILauncher`](/api/com/twitter/heron/spi/scheduler/ILauncher.html) | Defines how the scheduler is launched | [Aurora](/api/com/twitter/heron/scheduler/aurora/AuroraLauncher.html), [local](/api/com/twitter/heron/scheduler/local/LocalLauncher.html)\n+[`IScheduler`](/api/com/twitter/heron/spi/scheduler/IScheduler.html) | Defines the scheduler object used to construct topologies | [local](/api/com/twitter/heron/scheduler/local/LocalScheduler.html)\n+[`IUploader`](/api/com/twitter/heron/spi/uploader/IUploader.html) | Uploads the topology to a shared location accessible to the runtime environment of the topology | [local](/api/com/twitter/heron/uploader/localfs/LocalFileSystemUploader.html) [hdfs](/api/com/twitter/heron/uploader/hdfs/HdfsUploader.html) [s3](/api/com/twitter/heron/uploader/s3/S3Uploader.html)\n \n Your implementation of those interfaces will need to be on Heron's\n [classpath](https://docs.oracle.com/javase/tutorial/essential/environment/paths.html)\n when you [compile Heron](../../developers/compiling).\n \n-## Loading Configuration\n-\n-You can set up a configuration loader for a custom scheduler by implementing the\n-[`IConfig`](/api/com/twitter/heron/spi/scheduler/IConfig.html)\n-interface. You can use this interface to load configuration from any source\n-you'd like, e.g. YAML files, JSON files, or a web service.\n-\n-If you'd like to load configuration from files using the same syntax as Heron's\n-default configuration files for the Aurora and local schedulers (in\n-`heron/cli2/src/python`), you can implement the\n-[`DefaultConfigLoader`](/api/scheduler/com/twitter/heron/scheduler/util/DefaultConfigLoader.html)\n-interface.\n-\n-## Configurable Parameters\n-\n-At the very least, your configuration loader will need to be able to load the\n-class names (as strings) for your implementations of the components listed\n-above, as you can see from the interface definition for\n-[`IConfigLoader`](/api/com/twitter/heron/spi/scheduler/IConfigLoader.html).\n+Those interfaces and implementation are independent; you can choose and combine them to fit your use scenarios.\n \n ## Trying Out Your Scheduler\n \n-Once you've implemented a custom configuration loader, you'll need to specify\n-your loader by class using the `--config-loader` flag. If your loader relies on\n-a configuration file, specify the path of that file using the `--config-file`\n-flag. Here's an example [topology\n+Once you've implemented a custom scheduler (or other components), you'll need to specify implementation of all interfaces above","path":"website/content/docs/contributors/custom-scheduler.md","position":93,"original_position":93,"commit_id":"cca998674d82bc8b56e233900ce0d094945d7f02","original_commit_id":"cca998674d82bc8b56e233900ce0d094945d7f02","user":{"login":"maosongfu","id":3028698,"avatar_url":"https://avatars.githubusercontent.com/u/3028698?v=3","gravatar_id":"","url":"https://api.github.com/users/maosongfu","html_url":"https://github.com/maosongfu","followers_url":"https://api.github.com/users/maosongfu/followers","following_url":"https://api.github.com/users/maosongfu/following{/other_user}","gists_url":"https://api.github.com/users/maosongfu/gists{/gist_id}","starred_url":"https://api.github.com/users/maosongfu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maosongfu/subscriptions","organizations_url":"https://api.github.com/users/maosongfu/orgs","repos_url":"https://api.github.com/users/maosongfu/repos","events_url":"https://api.github.com/users/maosongfu/events{/privacy}","received_events_url":"https://api.github.com/users/maosongfu/received_events","type":"User","site_admin":false},"body":"sounds good; updated.","created_at":"2016-06-07T18:11:41Z","updated_at":"2016-06-07T18:11:41Z","html_url":"https://github.com/twitter/heron/pull/871#discussion_r66123474","pull_request_url":"https://api.github.com/repos/twitter/heron/pulls/871","_links":{"self":{"href":"https://api.github.com/repos/twitter/heron/pulls/comments/66123474"},"html":{"href":"https://github.com/twitter/heron/pull/871#discussion_r66123474"},"pull_request":{"href":"https://api.github.com/repos/twitter/heron/pulls/871"}}},"pull_request":{"url":"https://api.github.com/repos/twitter/heron/pulls/871","id":72799855,"html_url":"https://github.com/twitter/heron/pull/871","diff_url":"https://github.com/twitter/heron/pull/871.diff","patch_url":"https://github.com/twitter/heron/pull/871.patch","issue_url":"https://api.github.com/repos/twitter/heron/issues/871","number":871,"state":"open","locked":false,"title":"Correct heron developers doc.","user":{"login":"maosongfu","id":3028698,"avatar_url":"https://avatars.githubusercontent.com/u/3028698?v=3","gravatar_id":"","url":"https://api.github.com/users/maosongfu","html_url":"https://github.com/maosongfu","followers_url":"https://api.github.com/users/maosongfu/followers","following_url":"https://api.github.com/users/maosongfu/following{/other_user}","gists_url":"https://api.github.com/users/maosongfu/gists{/gist_id}","starred_url":"https://api.github.com/users/maosongfu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maosongfu/subscriptions","organizations_url":"https://api.github.com/users/maosongfu/orgs","repos_url":"https://api.github.com/users/maosongfu/repos","events_url":"https://api.github.com/users/maosongfu/events{/privacy}","received_events_url":"https://api.github.com/users/maosongfu/received_events","type":"User","site_admin":false},"body":"1. Correct out-dated docs.\r\n2. Fix broken links.","created_at":"2016-06-07T00:35:48Z","updated_at":"2016-06-07T18:11:41Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ffdffaaec4d5bef304d6704798a44b8812aad932","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/twitter/heron/pulls/871/commits","review_comments_url":"https://api.github.com/repos/twitter/heron/pulls/871/comments","review_comment_url":"https://api.github.com/repos/twitter/heron/pulls/comments{/number}","comments_url":"https://api.github.com/repos/twitter/heron/issues/871/comments","statuses_url":"https://api.github.com/repos/twitter/heron/statuses/cca998674d82bc8b56e233900ce0d094945d7f02","head":{"label":"twitter:mfu/correctHeronDevelopersDoc","ref":"mfu/correctHeronDevelopersDoc","sha":"cca998674d82bc8b56e233900ce0d094945d7f02","user":{"login":"twitter","id":50278,"avatar_url":"https://avatars.githubusercontent.com/u/50278?v=3","gravatar_id":"","url":"https://api.github.com/users/twitter","html_url":"https://github.com/twitter","followers_url":"https://api.github.com/users/twitter/followers","following_url":"https://api.github.com/users/twitter/following{/other_user}","gists_url":"https://api.github.com/users/twitter/gists{/gist_id}","starred_url":"https://api.github.com/users/twitter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/twitter/subscriptions","organizations_url":"https://api.github.com/users/twitter/orgs","repos_url":"https://api.github.com/users/twitter/repos","events_url":"https://api.github.com/users/twitter/events{/privacy}","received_events_url":"https://api.github.com/users/twitter/received_events","type":"Organization","site_admin":false},"repo":{"id":43158694,"name":"heron","full_name":"twitter/heron","owner":{"login":"twitter","id":50278,"avatar_url":"https://avatars.githubusercontent.com/u/50278?v=3","gravatar_id":"","url":"https://api.github.com/users/twitter","html_url":"https://github.com/twitter","followers_url":"https://api.github.com/users/twitter/followers","following_url":"https://api.github.com/users/twitter/following{/other_user}","gists_url":"https://api.github.com/users/twitter/gists{/gist_id}","starred_url":"https://api.github.com/users/twitter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/twitter/subscriptions","organizations_url":"https://api.github.com/users/twitter/orgs","repos_url":"https://api.github.com/users/twitter/repos","events_url":"https://api.github.com/users/twitter/events{/privacy}","received_events_url":"https://api.github.com/users/twitter/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/twitter/heron","description":"Heron is a realtime, distributed, fault-tolerant stream processing engine from Twitter","fork":false,"url":"https://api.github.com/repos/twitter/heron","forks_url":"https://api.github.com/repos/twitter/heron/forks","keys_url":"https://api.github.com/repos/twitter/heron/keys{/key_id}","collaborators_url":"https://api.github.com/repos/twitter/heron/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/twitter/heron/teams","hooks_url":"https://api.github.com/repos/twitter/heron/hooks","issue_events_url":"https://api.github.com/repos/twitter/heron/issues/events{/number}","events_url":"https://api.github.com/repos/twitter/heron/events","assignees_url":"https://api.github.com/repos/twitter/heron/assignees{/user}","branches_url":"https://api.github.com/repos/twitter/heron/branches{/branch}","tags_url":"https://api.github.com/repos/twitter/heron/tags","blobs_url":"https://api.github.com/repos/twitter/heron/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/twitter/heron/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/twitter/heron/git/refs{/sha}","trees_url":"https://api.github.com/repos/twitter/heron/git/trees{/sha}","statuses_url":"https://api.github.com/repos/twitter/heron/statuses/{sha}","languages_url":"https://api.github.com/repos/twitter/heron/languages","stargazers_url":"https://api.github.com/repos/twitter/heron/stargazers","contributors_url":"https://api.github.com/repos/twitter/heron/contributors","subscribers_url":"https://api.github.com/repos/twitter/heron/subscribers","subscription_url":"https://api.github.com/repos/twitter/heron/subscription","commits_url":"https://api.github.com/repos/twitter/heron/commits{/sha}","git_commits_url":"https://api.github.com/repos/twitter/heron/git/commits{/sha}","comments_url":"https://api.github.com/repos/twitter/heron/comments{/number}","issue_comment_url":"https://api.github.com/repos/twitter/heron/issues/comments{/number}","contents_url":"https://api.github.com/repos/twitter/heron/contents/{+path}","compare_url":"https://api.github.com/repos/twitter/heron/compare/{base}...{head}","merges_url":"https://api.github.com/repos/twitter/heron/merges","archive_url":"https://api.github.com/repos/twitter/heron/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/twitter/heron/downloads","issues_url":"https://api.github.com/repos/twitter/heron/issues{/number}","pulls_url":"https://api.github.com/repos/twitter/heron/pulls{/number}","milestones_url":"https://api.github.com/repos/twitter/heron/milestones{/number}","notifications_url":"https://api.github.com/repos/twitter/heron/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/twitter/heron/labels{/name}","releases_url":"https://api.github.com/repos/twitter/heron/releases{/id}","deployments_url":"https://api.github.com/repos/twitter/heron/deployments","created_at":"2015-09-25T16:09:24Z","updated_at":"2016-06-07T17:23:00Z","pushed_at":"2016-06-07T18:03:07Z","git_url":"git://github.com/twitter/heron.git","ssh_url":"git@github.com:twitter/heron.git","clone_url":"https://github.com/twitter/heron.git","svn_url":"https://github.com/twitter/heron","homepage":"http://heronstreaming.io","size":127860,"stargazers_count":1871,"watchers_count":1871,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":268,"mirror_url":null,"open_issues_count":128,"forks":268,"open_issues":128,"watchers":1871,"default_branch":"master"}},"base":{"label":"twitter:master","ref":"master","sha":"e53c0cf173799dd7802ac3f3bb4e16fad8cdfa04","user":{"login":"twitter","id":50278,"avatar_url":"https://avatars.githubusercontent.com/u/50278?v=3","gravatar_id":"","url":"https://api.github.com/users/twitter","html_url":"https://github.com/twitter","followers_url":"https://api.github.com/users/twitter/followers","following_url":"https://api.github.com/users/twitter/following{/other_user}","gists_url":"https://api.github.com/users/twitter/gists{/gist_id}","starred_url":"https://api.github.com/users/twitter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/twitter/subscriptions","organizations_url":"https://api.github.com/users/twitter/orgs","repos_url":"https://api.github.com/users/twitter/repos","events_url":"https://api.github.com/users/twitter/events{/privacy}","received_events_url":"https://api.github.com/users/twitter/received_events","type":"Organization","site_admin":false},"repo":{"id":43158694,"name":"heron","full_name":"twitter/heron","owner":{"login":"twitter","id":50278,"avatar_url":"https://avatars.githubusercontent.com/u/50278?v=3","gravatar_id":"","url":"https://api.github.com/users/twitter","html_url":"https://github.com/twitter","followers_url":"https://api.github.com/users/twitter/followers","following_url":"https://api.github.com/users/twitter/following{/other_user}","gists_url":"https://api.github.com/users/twitter/gists{/gist_id}","starred_url":"https://api.github.com/users/twitter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/twitter/subscriptions","organizations_url":"https://api.github.com/users/twitter/orgs","repos_url":"https://api.github.com/users/twitter/repos","events_url":"https://api.github.com/users/twitter/events{/privacy}","received_events_url":"https://api.github.com/users/twitter/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/twitter/heron","description":"Heron is a realtime, distributed, fault-tolerant stream processing engine from Twitter","fork":false,"url":"https://api.github.com/repos/twitter/heron","forks_url":"https://api.github.com/repos/twitter/heron/forks","keys_url":"https://api.github.com/repos/twitter/heron/keys{/key_id}","collaborators_url":"https://api.github.com/repos/twitter/heron/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/twitter/heron/teams","hooks_url":"https://api.github.com/repos/twitter/heron/hooks","issue_events_url":"https://api.github.com/repos/twitter/heron/issues/events{/number}","events_url":"https://api.github.com/repos/twitter/heron/events","assignees_url":"https://api.github.com/repos/twitter/heron/assignees{/user}","branches_url":"https://api.github.com/repos/twitter/heron/branches{/branch}","tags_url":"https://api.github.com/repos/twitter/heron/tags","blobs_url":"https://api.github.com/repos/twitter/heron/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/twitter/heron/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/twitter/heron/git/refs{/sha}","trees_url":"https://api.github.com/repos/twitter/heron/git/trees{/sha}","statuses_url":"https://api.github.com/repos/twitter/heron/statuses/{sha}","languages_url":"https://api.github.com/repos/twitter/heron/languages","stargazers_url":"https://api.github.com/repos/twitter/heron/stargazers","contributors_url":"https://api.github.com/repos/twitter/heron/contributors","subscribers_url":"https://api.github.com/repos/twitter/heron/subscribers","subscription_url":"https://api.github.com/repos/twitter/heron/subscription","commits_url":"https://api.github.com/repos/twitter/heron/commits{/sha}","git_commits_url":"https://api.github.com/repos/twitter/heron/git/commits{/sha}","comments_url":"https://api.github.com/repos/twitter/heron/comments{/number}","issue_comment_url":"https://api.github.com/repos/twitter/heron/issues/comments{/number}","contents_url":"https://api.github.com/repos/twitter/heron/contents/{+path}","compare_url":"https://api.github.com/repos/twitter/heron/compare/{base}...{head}","merges_url":"https://api.github.com/repos/twitter/heron/merges","archive_url":"https://api.github.com/repos/twitter/heron/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/twitter/heron/downloads","issues_url":"https://api.github.com/repos/twitter/heron/issues{/number}","pulls_url":"https://api.github.com/repos/twitter/heron/pulls{/number}","milestones_url":"https://api.github.com/repos/twitter/heron/milestones{/number}","notifications_url":"https://api.github.com/repos/twitter/heron/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/twitter/heron/labels{/name}","releases_url":"https://api.github.com/repos/twitter/heron/releases{/id}","deployments_url":"https://api.github.com/repos/twitter/heron/deployments","created_at":"2015-09-25T16:09:24Z","updated_at":"2016-06-07T17:23:00Z","pushed_at":"2016-06-07T18:03:07Z","git_url":"git://github.com/twitter/heron.git","ssh_url":"git@github.com:twitter/heron.git","clone_url":"https://github.com/twitter/heron.git","svn_url":"https://github.com/twitter/heron","homepage":"http://heronstreaming.io","size":127860,"stargazers_count":1871,"watchers_count":1871,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":268,"mirror_url":null,"open_issues_count":128,"forks":268,"open_issues":128,"watchers":1871,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/twitter/heron/pulls/871"},"html":{"href":"https://github.com/twitter/heron/pull/871"},"issue":{"href":"https://api.github.com/repos/twitter/heron/issues/871"},"comments":{"href":"https://api.github.com/repos/twitter/heron/issues/871/comments"},"review_comments":{"href":"https://api.github.com/repos/twitter/heron/pulls/871/comments"},"review_comment":{"href":"https://api.github.com/repos/twitter/heron/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/twitter/heron/pulls/871/commits"},"statuses":{"href":"https://api.github.com/repos/twitter/heron/statuses/cca998674d82bc8b56e233900ce0d094945d7f02"}}}}
{"actor":{"display_login":"maosongfu"}}