{"action":"created","comment":{"url":"https://api.github.com/repos/mesos/mesos-rxjava/pulls/comments/45533652","id":45533652,"diff_hunk":"@@ -0,0 +1,164 @@\n+package org.apache.mesos.rx.java;\n+\n+import org.jetbrains.annotations.NotNull;\n+import rx.Observable;\n+\n+import java.net.URI;\n+import java.util.Optional;\n+import java.util.function.Function;\n+\n+import static com.google.common.base.Preconditions.checkNotNull;\n+\n+/**\n+ * Builder used to create a {@link MesosSchedulerClient}.\n+ * <p/>\n+ * PLEASE NOTE: All methods in this class function as \"set\" rather than \"copy with new value\"\n+ * @param <Send>       The type of objects that will be sent to Mesos\n+ * @param <Receive>    The type of objects are expected from Mesos\n+ */\n+public final class MesosSchedulerClientBuilder<Send, Receive> {\n+\n+    private URI mesosUri;\n+    private Function<Class<?>, UserAgentEntry> applicationUserAgentEntry;\n+    private MessageCodec<Send> sendCodec;\n+    private MessageCodec<Receive> receiveCodec;\n+    private Send subscribe;\n+    private Function<Observable<Receive>, Observable<Optional<SinkOperation<Send>>>> streamProcessor;\n+\n+    private MesosSchedulerClientBuilder() {}\n+\n+    /**\n+     * Create a new instance of {@link MesosSchedulerClientBuilder}\n+     * @param <Send>       The type of objects that will be sent to Mesos\n+     * @param <Receive>    The type of objects are expected from Mesos\n+     * @return A new instance of {@link MesosSchedulerClientBuilder}\n+     */\n+    @NotNull\n+    public static <Send, Receive> MesosSchedulerClientBuilder<Send, Receive> newBuilder() {\n+        return new MesosSchedulerClientBuilder<>();\n+    }\n+\n+    /**\n+     * The {@link URI} that should be used to connect to Mesos. The following segments of the URI are used:\n+     * <ul>\n+     *     <li>hostname</li>\n+     *     <li>port</li>\n+     *     <li>username</li>\n+     *     <li>password</li>\n+     *     <li>path</li>\n+     * </ul>\n+     * @param mesosUri    Fully qualified URI to use to connect to mesos.\n+     * @return this builder (allowing for further chained calls)\n+     */\n+    @NotNull\n+    public MesosSchedulerClientBuilder<Send, Receive> mesosUri(\n+        @NotNull final URI mesosUri\n+    ) {\n+        this.mesosUri = mesosUri;\n+        return this;\n+    }\n+\n+    /**\n+     * Sets the function used to create a {@link UserAgentEntry} to be included the {@code User-Agent} header\n+     * sent to Mesos for all requests.\n+     * @param applicationUserAgentEntry    Function to provide the {@link UserAgentEntry}\n+     * @return this builder (allowing for further chained calls)\n+     */\n+    @NotNull\n+    public MesosSchedulerClientBuilder<Send, Receive> applicationUserAgentEntry(\n+        @NotNull final Function<Class<?>, UserAgentEntry> applicationUserAgentEntry\n+    ) {\n+        this.applicationUserAgentEntry = applicationUserAgentEntry;\n+        return this;\n+    }\n+\n+    /**\n+     * Allows configuration of the codec used for the {@code Send} type.\n+     * @param sendCodec    {@link MessageCodec} for {@code Send} type\n+     * @return this builder (allowing for further chained calls)\n+     */\n+    @NotNull\n+    public MesosSchedulerClientBuilder<Send, Receive> sendCodec(\n+        @NotNull final MessageCodec<Send> sendCodec\n+    ) {\n+        this.sendCodec = sendCodec;\n+        return this;\n+    }\n+\n+    /**\n+     * Allows configuration of the codec used for the {@code Receive} type.\n+     * @param receiveCodec    {@link MessageCodec} for {@code Receive} type\n+     * @return this builder (allowing for further chained calls)\n+     */\n+    @NotNull\n+    public MesosSchedulerClientBuilder<Send, Receive> receiveCodec(\n+        @NotNull final MessageCodec<Receive> receiveCodec\n+    ) {\n+        this.receiveCodec = receiveCodec;\n+        return this;\n+    }\n+\n+    /**\n+     * @param subscribe     The {@link org.apache.mesos.v1.scheduler.Protos.Call.Type#SUBSCRIBE}\n+     *                      {@link org.apache.mesos.v1.scheduler.Protos.Call} to be sent to Mesos\n+     *                      when opening the event stream.\n+     * @return this builder (allowing for further chained calls)\n+     */\n+    @NotNull\n+    public MesosSchedulerClientBuilder<Send, Receive> subscribe(\n+        @NotNull final Send subscribe\n+    ) {\n+        this.subscribe = subscribe;\n+        return this;\n+    }\n+\n+    /**\n+     * This method provides the means for a user to define how the event stream will be processed.\n+     * <p/>\n+     * The function passed to this method will function as the actual event processing code for the user.\n+     * <p/>\n+     * The stream the users will source from is an {@link Observable} of {@code Receive}s. With this stream\n+     * source a number of functions can be applied to transform/interact/evaluate the stream.\n+     * <p/>\n+     * The output of this function represents the users reaction to each event represented as an\n+     * {@code Observable<Optional<SinkOperation<Send>>>}. If {@link Optional#isPresent()} the specified\n+     * {@link SinkOperation} will be processed.\n+     * <p/>\n+     * For example, if you wanted to log all tasks that result in error:\n+     * <pre><code>\n+     * events -> {\n+     *     final Observable&lt;Optional&lt;SinkOperation&lt;Call>>> errorLogger = events\n+     *         .filter(event -> event.getType() == Event.Type.UPDATE && event.getUpdate().getStatus().getState() == TaskState.TASK_ERROR)\n+     *         .doOnNext(e -> LOGGER.warn(\"Task Error: {}\", ProtoUtils.protoToString(e)))\n+     *         .map(e -> Optional.empty());\n+     * }\n+     * </code></pre>\n+     * @param streamProcessing    The function that will be woven between the event spout and the call sink\n+     * @return this builder (allowing for further chained calls)\n+     */\n+    @NotNull\n+    public MesosSchedulerClientBuilder<Send, Receive> processStream(\n+        @NotNull final Function<Observable<Receive>, Observable<Optional<SinkOperation<Send>>>> streamProcessing\n+    ) {\n+        this.streamProcessor = streamProcessing;\n+        return this;\n+    }\n+\n+    /**\n+     * Builds the instance of {@link MesosSchedulerClient} that has been configured by this builder.\n+     * All items are expected to have non-null values, if any item is null and exception will be thrown.\n+     * @return The configured {@link MesosSchedulerClient}\n+     */\n+    @NotNull\n+    public final MesosSchedulerClient<Send, Receive> build() {\n+        return new MesosSchedulerClient<>(\n+            mesosUri,","path":"mesos-rxjava-core/src/main/java/org/apache/mesos/rx/java/MesosSchedulerClientBuilder.java","position":155,"original_position":155,"commit_id":"e0f89e1993d6e66e91f6bf3ba725f390fb83dc4d","original_commit_id":"e0f89e1993d6e66e91f6bf3ba725f390fb83dc4d","user":{"login":"cruhland","id":1936682,"avatar_url":"https://avatars.githubusercontent.com/u/1936682?v=3","gravatar_id":"","url":"https://api.github.com/users/cruhland","html_url":"https://github.com/cruhland","followers_url":"https://api.github.com/users/cruhland/followers","following_url":"https://api.github.com/users/cruhland/following{/other_user}","gists_url":"https://api.github.com/users/cruhland/gists{/gist_id}","starred_url":"https://api.github.com/users/cruhland/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cruhland/subscriptions","organizations_url":"https://api.github.com/users/cruhland/orgs","repos_url":"https://api.github.com/users/cruhland/repos","events_url":"https://api.github.com/users/cruhland/events{/privacy}","received_events_url":"https://api.github.com/users/cruhland/received_events","type":"User","site_admin":false},"body":"Check this for null too?","created_at":"2015-11-20T23:49:00Z","updated_at":"2015-11-20T23:49:00Z","html_url":"https://github.com/mesos/mesos-rxjava/pull/28#discussion_r45533652","pull_request_url":"https://api.github.com/repos/mesos/mesos-rxjava/pulls/28","_links":{"self":{"href":"https://api.github.com/repos/mesos/mesos-rxjava/pulls/comments/45533652"},"html":{"href":"https://github.com/mesos/mesos-rxjava/pull/28#discussion_r45533652"},"pull_request":{"href":"https://api.github.com/repos/mesos/mesos-rxjava/pulls/28"}}},"pull_request":{"url":"https://api.github.com/repos/mesos/mesos-rxjava/pulls/28","id":51169730,"html_url":"https://github.com/mesos/mesos-rxjava/pull/28","diff_url":"https://github.com/mesos/mesos-rxjava/pull/28.diff","patch_url":"https://github.com/mesos/mesos-rxjava/pull/28.patch","issue_url":"https://api.github.com/repos/mesos/mesos-rxjava/issues/28","number":28,"state":"open","locked":false,"title":"Refactor MesosSchedulerClient API for improve lifecycle management.","user":{"login":"BenWhitehead","id":1754037,"avatar_url":"https://avatars.githubusercontent.com/u/1754037?v=3","gravatar_id":"","url":"https://api.github.com/users/BenWhitehead","html_url":"https://github.com/BenWhitehead","followers_url":"https://api.github.com/users/BenWhitehead/followers","following_url":"https://api.github.com/users/BenWhitehead/following{/other_user}","gists_url":"https://api.github.com/users/BenWhitehead/gists{/gist_id}","starred_url":"https://api.github.com/users/BenWhitehead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BenWhitehead/subscriptions","organizations_url":"https://api.github.com/users/BenWhitehead/orgs","repos_url":"https://api.github.com/users/BenWhitehead/repos","events_url":"https://api.github.com/users/BenWhitehead/events{/privacy}","received_events_url":"https://api.github.com/users/BenWhitehead/received_events","type":"User","site_admin":false},"body":"Creation of a MesosSchedulerClient is now managed via the new\r\nMesosSchedulerClientBuilder class. This class provides all the necessary\r\nmethods to construct a MesosSchedulerClient.\r\n\r\nMesosSchedulerClient has been refactored to instead of returning a raw\r\n`Observable<Protos.Event>` it instead task a\r\n`Function<Observable<Protos.Event>, Observable<Optional<SinkOperation<Protos.Call>>>`.\r\nThis function will be woven into the event stream for the user. This\r\nchange affords us much greater control over the lifecycle of the event\r\nstream and subscriptions on the end of it.\r\n\r\nWhen the event stream is opened an `AwaitableSubscription` will be\r\nreturned to the user which can be used to await the end of the stream\r\n(either error or complete). If the stream ends due to an error, the\r\nerror will be propagated to the thread blocked by the `await()` call.\r\n\r\nCreate a new utility TcpSocketProxy that can be used in tests. This\r\nsimple proxy allows for the creation of a proxy between two addresses.\r\nThe user can then close all sockets immediately or defer to a latter\r\npoint.","created_at":"2015-11-19T01:48:18Z","updated_at":"2015-11-20T23:49:00Z","closed_at":null,"merged_at":null,"merge_commit_sha":"18a130fee49332253ceae3d00e3ddeb92eb72f66","assignee":{"login":"cruhland","id":1936682,"avatar_url":"https://avatars.githubusercontent.com/u/1936682?v=3","gravatar_id":"","url":"https://api.github.com/users/cruhland","html_url":"https://github.com/cruhland","followers_url":"https://api.github.com/users/cruhland/followers","following_url":"https://api.github.com/users/cruhland/following{/other_user}","gists_url":"https://api.github.com/users/cruhland/gists{/gist_id}","starred_url":"https://api.github.com/users/cruhland/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cruhland/subscriptions","organizations_url":"https://api.github.com/users/cruhland/orgs","repos_url":"https://api.github.com/users/cruhland/repos","events_url":"https://api.github.com/users/cruhland/events{/privacy}","received_events_url":"https://api.github.com/users/cruhland/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/mesos/mesos-rxjava/milestones/1","html_url":"https://github.com/mesos/mesos-rxjava/milestones/0.1.0","labels_url":"https://api.github.com/repos/mesos/mesos-rxjava/milestones/1/labels","id":1407158,"number":1,"title":"0.1.0","description":null,"creator":{"login":"BenWhitehead","id":1754037,"avatar_url":"https://avatars.githubusercontent.com/u/1754037?v=3","gravatar_id":"","url":"https://api.github.com/users/BenWhitehead","html_url":"https://github.com/BenWhitehead","followers_url":"https://api.github.com/users/BenWhitehead/followers","following_url":"https://api.github.com/users/BenWhitehead/following{/other_user}","gists_url":"https://api.github.com/users/BenWhitehead/gists{/gist_id}","starred_url":"https://api.github.com/users/BenWhitehead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BenWhitehead/subscriptions","organizations_url":"https://api.github.com/users/BenWhitehead/orgs","repos_url":"https://api.github.com/users/BenWhitehead/repos","events_url":"https://api.github.com/users/BenWhitehead/events{/privacy}","received_events_url":"https://api.github.com/users/BenWhitehead/received_events","type":"User","site_admin":false},"open_issues":15,"closed_issues":4,"state":"open","created_at":"2015-11-11T18:50:01Z","updated_at":"2015-11-19T22:37:33Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/mesos/mesos-rxjava/pulls/28/commits","review_comments_url":"https://api.github.com/repos/mesos/mesos-rxjava/pulls/28/comments","review_comment_url":"https://api.github.com/repos/mesos/mesos-rxjava/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mesos/mesos-rxjava/issues/28/comments","statuses_url":"https://api.github.com/repos/mesos/mesos-rxjava/statuses/e0f89e1993d6e66e91f6bf3ba725f390fb83dc4d","head":{"label":"BenWhitehead:error-propagation","ref":"error-propagation","sha":"e0f89e1993d6e66e91f6bf3ba725f390fb83dc4d","user":{"login":"BenWhitehead","id":1754037,"avatar_url":"https://avatars.githubusercontent.com/u/1754037?v=3","gravatar_id":"","url":"https://api.github.com/users/BenWhitehead","html_url":"https://github.com/BenWhitehead","followers_url":"https://api.github.com/users/BenWhitehead/followers","following_url":"https://api.github.com/users/BenWhitehead/following{/other_user}","gists_url":"https://api.github.com/users/BenWhitehead/gists{/gist_id}","starred_url":"https://api.github.com/users/BenWhitehead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BenWhitehead/subscriptions","organizations_url":"https://api.github.com/users/BenWhitehead/orgs","repos_url":"https://api.github.com/users/BenWhitehead/repos","events_url":"https://api.github.com/users/BenWhitehead/events{/privacy}","received_events_url":"https://api.github.com/users/BenWhitehead/received_events","type":"User","site_admin":false},"repo":{"id":44843346,"name":"mesos-rxjava","full_name":"BenWhitehead/mesos-rxjava","owner":{"login":"BenWhitehead","id":1754037,"avatar_url":"https://avatars.githubusercontent.com/u/1754037?v=3","gravatar_id":"","url":"https://api.github.com/users/BenWhitehead","html_url":"https://github.com/BenWhitehead","followers_url":"https://api.github.com/users/BenWhitehead/followers","following_url":"https://api.github.com/users/BenWhitehead/following{/other_user}","gists_url":"https://api.github.com/users/BenWhitehead/gists{/gist_id}","starred_url":"https://api.github.com/users/BenWhitehead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BenWhitehead/subscriptions","organizations_url":"https://api.github.com/users/BenWhitehead/orgs","repos_url":"https://api.github.com/users/BenWhitehead/repos","events_url":"https://api.github.com/users/BenWhitehead/events{/privacy}","received_events_url":"https://api.github.com/users/BenWhitehead/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/BenWhitehead/mesos-rxjava","description":"RxJava client for Apache Mesos HTTP APIs","fork":true,"url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava","forks_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/forks","keys_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/keys{/key_id}","collaborators_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/teams","hooks_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/hooks","issue_events_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/issues/events{/number}","events_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/events","assignees_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/assignees{/user}","branches_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/branches{/branch}","tags_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/tags","blobs_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/git/refs{/sha}","trees_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/git/trees{/sha}","statuses_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/statuses/{sha}","languages_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/languages","stargazers_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/stargazers","contributors_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/contributors","subscribers_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/subscribers","subscription_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/subscription","commits_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/commits{/sha}","git_commits_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/git/commits{/sha}","comments_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/comments{/number}","issue_comment_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/issues/comments{/number}","contents_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/contents/{+path}","compare_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/compare/{base}...{head}","merges_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/merges","archive_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/downloads","issues_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/issues{/number}","pulls_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/pulls{/number}","milestones_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/milestones{/number}","notifications_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/labels{/name}","releases_url":"https://api.github.com/repos/BenWhitehead/mesos-rxjava/releases{/id}","created_at":"2015-10-23T23:14:37Z","updated_at":"2015-10-23T23:14:38Z","pushed_at":"2015-11-19T23:40:50Z","git_url":"git://github.com/BenWhitehead/mesos-rxjava.git","ssh_url":"git@github.com:BenWhitehead/mesos-rxjava.git","clone_url":"https://github.com/BenWhitehead/mesos-rxjava.git","svn_url":"https://github.com/BenWhitehead/mesos-rxjava","homepage":"","size":105,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":true,"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":"mesos:master","ref":"master","sha":"83c9c9dce36adfdc97450dc6856dc926875b8748","user":{"login":"mesos","id":229272,"avatar_url":"https://avatars.githubusercontent.com/u/229272?v=3","gravatar_id":"","url":"https://api.github.com/users/mesos","html_url":"https://github.com/mesos","followers_url":"https://api.github.com/users/mesos/followers","following_url":"https://api.github.com/users/mesos/following{/other_user}","gists_url":"https://api.github.com/users/mesos/gists{/gist_id}","starred_url":"https://api.github.com/users/mesos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mesos/subscriptions","organizations_url":"https://api.github.com/users/mesos/orgs","repos_url":"https://api.github.com/users/mesos/repos","events_url":"https://api.github.com/users/mesos/events{/privacy}","received_events_url":"https://api.github.com/users/mesos/received_events","type":"Organization","site_admin":false},"repo":{"id":44835755,"name":"mesos-rxjava","full_name":"mesos/mesos-rxjava","owner":{"login":"mesos","id":229272,"avatar_url":"https://avatars.githubusercontent.com/u/229272?v=3","gravatar_id":"","url":"https://api.github.com/users/mesos","html_url":"https://github.com/mesos","followers_url":"https://api.github.com/users/mesos/followers","following_url":"https://api.github.com/users/mesos/following{/other_user}","gists_url":"https://api.github.com/users/mesos/gists{/gist_id}","starred_url":"https://api.github.com/users/mesos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mesos/subscriptions","organizations_url":"https://api.github.com/users/mesos/orgs","repos_url":"https://api.github.com/users/mesos/repos","events_url":"https://api.github.com/users/mesos/events{/privacy}","received_events_url":"https://api.github.com/users/mesos/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/mesos/mesos-rxjava","description":"RxJava client for Apache Mesos HTTP APIs","fork":false,"url":"https://api.github.com/repos/mesos/mesos-rxjava","forks_url":"https://api.github.com/repos/mesos/mesos-rxjava/forks","keys_url":"https://api.github.com/repos/mesos/mesos-rxjava/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mesos/mesos-rxjava/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mesos/mesos-rxjava/teams","hooks_url":"https://api.github.com/repos/mesos/mesos-rxjava/hooks","issue_events_url":"https://api.github.com/repos/mesos/mesos-rxjava/issues/events{/number}","events_url":"https://api.github.com/repos/mesos/mesos-rxjava/events","assignees_url":"https://api.github.com/repos/mesos/mesos-rxjava/assignees{/user}","branches_url":"https://api.github.com/repos/mesos/mesos-rxjava/branches{/branch}","tags_url":"https://api.github.com/repos/mesos/mesos-rxjava/tags","blobs_url":"https://api.github.com/repos/mesos/mesos-rxjava/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mesos/mesos-rxjava/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mesos/mesos-rxjava/git/refs{/sha}","trees_url":"https://api.github.com/repos/mesos/mesos-rxjava/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mesos/mesos-rxjava/statuses/{sha}","languages_url":"https://api.github.com/repos/mesos/mesos-rxjava/languages","stargazers_url":"https://api.github.com/repos/mesos/mesos-rxjava/stargazers","contributors_url":"https://api.github.com/repos/mesos/mesos-rxjava/contributors","subscribers_url":"https://api.github.com/repos/mesos/mesos-rxjava/subscribers","subscription_url":"https://api.github.com/repos/mesos/mesos-rxjava/subscription","commits_url":"https://api.github.com/repos/mesos/mesos-rxjava/commits{/sha}","git_commits_url":"https://api.github.com/repos/mesos/mesos-rxjava/git/commits{/sha}","comments_url":"https://api.github.com/repos/mesos/mesos-rxjava/comments{/number}","issue_comment_url":"https://api.github.com/repos/mesos/mesos-rxjava/issues/comments{/number}","contents_url":"https://api.github.com/repos/mesos/mesos-rxjava/contents/{+path}","compare_url":"https://api.github.com/repos/mesos/mesos-rxjava/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mesos/mesos-rxjava/merges","archive_url":"https://api.github.com/repos/mesos/mesos-rxjava/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mesos/mesos-rxjava/downloads","issues_url":"https://api.github.com/repos/mesos/mesos-rxjava/issues{/number}","pulls_url":"https://api.github.com/repos/mesos/mesos-rxjava/pulls{/number}","milestones_url":"https://api.github.com/repos/mesos/mesos-rxjava/milestones{/number}","notifications_url":"https://api.github.com/repos/mesos/mesos-rxjava/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mesos/mesos-rxjava/labels{/name}","releases_url":"https://api.github.com/repos/mesos/mesos-rxjava/releases{/id}","created_at":"2015-10-23T20:04:55Z","updated_at":"2015-11-20T17:24:08Z","pushed_at":"2015-11-19T23:40:51Z","git_url":"git://github.com/mesos/mesos-rxjava.git","ssh_url":"git@github.com:mesos/mesos-rxjava.git","clone_url":"https://github.com/mesos/mesos-rxjava.git","svn_url":"https://github.com/mesos/mesos-rxjava","homepage":"","size":87,"stargazers_count":7,"watchers_count":7,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":15,"forks":2,"open_issues":15,"watchers":7,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mesos/mesos-rxjava/pulls/28"},"html":{"href":"https://github.com/mesos/mesos-rxjava/pull/28"},"issue":{"href":"https://api.github.com/repos/mesos/mesos-rxjava/issues/28"},"comments":{"href":"https://api.github.com/repos/mesos/mesos-rxjava/issues/28/comments"},"review_comments":{"href":"https://api.github.com/repos/mesos/mesos-rxjava/pulls/28/comments"},"review_comment":{"href":"https://api.github.com/repos/mesos/mesos-rxjava/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mesos/mesos-rxjava/pulls/28/commits"},"statuses":{"href":"https://api.github.com/repos/mesos/mesos-rxjava/statuses/e0f89e1993d6e66e91f6bf3ba725f390fb83dc4d"}}}}