{"action":"created","comment":{"url":"https://api.github.com/repos/AxonFramework/AxonFramework/pulls/comments/222281405","pull_request_review_id":161127600,"id":222281405,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyMjI4MTQwNQ==","diff_hunk":"@@ -762,4 +696,217 @@ public void setGapTimeout(int gapTimeout) {\n     public void setGapCleaningThreshold(int gapCleaningThreshold) {\n         this.gapCleaningThreshold = gapCleaningThreshold;\n     }\n+\n+    /**\n+     * Builder class to instantiate a {@link JdbcEventStorageEngine}.\n+     * <p>\n+     * The following configurable fields have defaults:\n+     * <ul>\n+     * <li>The snapshot {@link Serializer} defaults to {@link org.axonframework.serialization.xml.XStreamSerializer}.</li>\n+     * <li>The {@link EventUpcaster} defaults to an {@link org.axonframework.serialization.upcasting.event.NoOpEventUpcaster}.</li>\n+     * <li>The {@link PersistenceExceptionResolver} is defaulted to a {@link JdbcSQLErrorCodesResolver}</li>\n+     * <li>The event Serializer defaults to a {@link org.axonframework.serialization.xml.XStreamSerializer}.</li>\n+     * <li>The {@code snapshotFilter} defaults to a {@link Predicate} which returns {@code true} regardless.</li>\n+     * <li>The {@code batchSize} defaults to an integer of size {@code 100}.</li>\n+     * <li>The {@code dataType} is defaulted to the {@code byte[]} type.</li>\n+     * <li>The {@link EventSchema} to {@link EventSchema#EventSchema()}.</li>\n+     * <li>The {@code maxGapOffset} defaults to an  integer of size {@code 10000}.</li>\n+     * <li>The {@code lowestGlobalSequence} defaults to a long of size {@code 1}.</li>\n+     * <li>The {@code gapTimeout} defaults to an integer of size {@code 60000} (1 minute).</li>\n+     * <li>The {@code gapCleaningThreshold} defaults to an integer of size {@code 250}.</li>\n+     * </ul>\n+     * <p>\n+     * The {@link ConnectionProvider} and {@link TransactionManager} are a <b>hard requirements</b> and as such should\n+     * be provided.\n+     */\n+    public static class Builder extends BatchingEventStorageEngine.Builder {\n+\n+        private ConnectionProvider connectionProvider;\n+        private TransactionManager transactionManager;\n+        private Class<?> dataType = byte[].class;\n+        private EventSchema schema = new EventSchema();\n+        private int maxGapOffset = DEFAULT_MAX_GAP_OFFSET;\n+        private long lowestGlobalSequence = DEFAULT_LOWEST_GLOBAL_SEQUENCE;\n+        private int gapTimeout = DEFAULT_GAP_TIMEOUT;\n+        private int gapCleaningThreshold = DEFAULT_GAP_CLEANING_THRESHOLD;\n+\n+        private Builder() {\n+            persistenceExceptionResolver(new JdbcSQLErrorCodesResolver());\n+        }\n+\n+        @Override\n+        public Builder snapshotSerializer(Serializer snapshotSerializer) {\n+            super.snapshotSerializer(snapshotSerializer);\n+            return this;\n+        }\n+\n+        @Override\n+        public Builder upcasterChain(EventUpcaster upcasterChain) {\n+            super.upcasterChain(upcasterChain);\n+            return this;\n+        }\n+\n+        @Override\n+        public Builder persistenceExceptionResolver(PersistenceExceptionResolver persistenceExceptionResolver) {\n+            super.persistenceExceptionResolver(persistenceExceptionResolver);\n+            return this;\n+        }\n+\n+        @Override\n+        public Builder eventSerializer(Serializer eventSerializer) {\n+            super.eventSerializer(eventSerializer);\n+            return this;\n+        }\n+\n+        @Override\n+        public Builder snapshotFilter(Predicate<? super DomainEventData<?>> snapshotFilter) {\n+            super.snapshotFilter(snapshotFilter);\n+            return this;\n+        }\n+\n+        @Override\n+        public Builder batchSize(int batchSize) {\n+            super.batchSize(batchSize);\n+            return this;\n+        }\n+\n+        /**\n+         * Sets the {@link ConnectionProvider} which provides access to a JDBC connection.\n+         *\n+         * @param connectionProvider a {@link ConnectionProvider} which provides access to a JDBC connection\n+         * @return the current Builder instance, for a fluent interfacing\n+         */\n+        public Builder connectionProvider(ConnectionProvider connectionProvider) {\n+            assertNonNull(connectionProvider, \"ConnectionProvider may not be null\");\n+            this.connectionProvider = connectionProvider;\n+            return this;\n+        }\n+\n+        /**\n+         * Sets the {@link TransactionManager} used to manage transaction around fetching event data. Required by\n+         * certain databases for reading blob data.\n+         *\n+         * @param transactionManager a {@link TransactionManager} used to manage transaction around fetching event data\n+         * @return the current Builder instance, for a fluent interfacing\n+         */\n+        public Builder transactionManager(TransactionManager transactionManager) {\n+            assertNonNull(transactionManager, \"TransactionManager may not be null\");\n+            this.transactionManager = transactionManager;\n+            return this;\n+        }\n+\n+        /**\n+         * Sets the {@code dataType} specifying the serialized type of the Event Message's payload and Meta Data.\n+         * Defaults to the {@code byte[]} {@link Class}.\n+         *\n+         * @param dataType a {@link Class} specifying the serialized type of the Event Message's payload and Meta Data\n+         * @return the current Builder instance, for a fluent interfacing\n+         */\n+        public Builder dataType(Class<?> dataType) {\n+            assertNonNull(dataType, \"dataType may not be null\");\n+            this.dataType = dataType;\n+            return this;\n+        }\n+\n+        /**\n+         * Sets the {@link EventSchema} describing the database schema of event entries. Defaults to\n+         * {@link EventSchema#EventSchema()}.\n+         *\n+         * @param schema the {@link EventSchema} describing the database schema of event entries\n+         * @return the current Builder instance, for a fluent interfacing\n+         */\n+        public Builder schema(EventSchema schema) {\n+            assertNonNull(schema, \"EventSchema may not be null\");\n+            this.schema = schema;\n+            return this;\n+        }\n+\n+        /**\n+         * Sets the {@code maxGapOffset} specifying the maximum distance in sequence numbers between a missing event and\n+         * the event with the highest known index. If the gap is bigger it is assumed that the missing event will not be\n+         * committed to the store anymore. This event storage engine will no longer look for those events the next time\n+         * a batch is fetched. Defaults to an integer of {@code 10000}\n+         * ({@link JdbcEventStorageEngine#DEFAULT_MAX_GAP_OFFSET}.\n+         *\n+         * @param maxGapOffset an {@code int} specifying the maximum distance in sequence numbers between a missing\n+         *                     event and the event with the highest known index\n+         * @return the current Builder instance, for a fluent interfacing\n+         */\n+        public Builder maxGapOffset(int maxGapOffset) {\n+            assertPositive(maxGapOffset, \"maxGapOffset\");\n+            this.maxGapOffset = maxGapOffset;\n+            return this;\n+        }\n+\n+        /**\n+         * Sets the {@code lowestGlobalSequence} specifying the first expected auto generated sequence number. For most\n+         * data stores this is 1 unless the table has contained entries before. Defaults to a {@code long} of {@code 1}\n+         * ({@link JdbcEventStorageEngine#DEFAULT_LOWEST_GLOBAL_SEQUENCE}).\n+         *\n+         * @param lowestGlobalSequence a {@code long} specifying the first expected auto generated sequence number\n+         * @return the current Builder instance, for a fluent interfacing\n+         */\n+        public Builder lowestGlobalSequence(long lowestGlobalSequence) {\n+            assertThat(lowestGlobalSequence,\n+                       number -> number > 0,\n+                       \"The lowestGlobalSequence must be a positive number\");\n+            this.lowestGlobalSequence = lowestGlobalSequence;\n+            return this;\n+        }\n+\n+        /**\n+         * Sets the amount of time until a 'gap' in a TrackingToken may be considered timed out. This setting will\n+         * affect the cleaning process of gaps. Gaps that have timed out will be removed from Tracking Tokens to improve\n+         * performance of reading events. Defaults to an  integer of {@code 60000}","path":"core/src/main/java/org/axonframework/eventsourcing/eventstore/jdbc/JdbcEventStorageEngine.java","position":542,"original_position":542,"commit_id":"add7a3c3639490096371967ef4056b5447734bfb","original_commit_id":"add7a3c3639490096371967ef4056b5447734bfb","user":{"login":"smcvb","id":4687743,"node_id":"MDQ6VXNlcjQ2ODc3NDM=","avatar_url":"https://avatars3.githubusercontent.com/u/4687743?v=4","gravatar_id":"","url":"https://api.github.com/users/smcvb","html_url":"https://github.com/smcvb","followers_url":"https://api.github.com/users/smcvb/followers","following_url":"https://api.github.com/users/smcvb/following{/other_user}","gists_url":"https://api.github.com/users/smcvb/gists{/gist_id}","starred_url":"https://api.github.com/users/smcvb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smcvb/subscriptions","organizations_url":"https://api.github.com/users/smcvb/orgs","repos_url":"https://api.github.com/users/smcvb/repos","events_url":"https://api.github.com/users/smcvb/events{/privacy}","received_events_url":"https://api.github.com/users/smcvb/received_events","type":"User","site_admin":false},"body":"Sharp!","created_at":"2018-10-03T12:00:10Z","updated_at":"2018-10-03T12:00:10Z","html_url":"https://github.com/AxonFramework/AxonFramework/pull/806#discussion_r222281405","pull_request_url":"https://api.github.com/repos/AxonFramework/AxonFramework/pulls/806","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/AxonFramework/AxonFramework/pulls/comments/222281405"},"html":{"href":"https://github.com/AxonFramework/AxonFramework/pull/806#discussion_r222281405"},"pull_request":{"href":"https://api.github.com/repos/AxonFramework/AxonFramework/pulls/806"}},"in_reply_to_id":222213769},"pull_request":{"url":"https://api.github.com/repos/AxonFramework/AxonFramework/pulls/806","id":219736353,"node_id":"MDExOlB1bGxSZXF1ZXN0MjE5NzM2MzUz","html_url":"https://github.com/AxonFramework/AxonFramework/pull/806","diff_url":"https://github.com/AxonFramework/AxonFramework/pull/806.diff","patch_url":"https://github.com/AxonFramework/AxonFramework/pull/806.patch","issue_url":"https://api.github.com/repos/AxonFramework/AxonFramework/issues/806","number":806,"state":"open","locked":false,"title":"[#754 Part 9] Use builder pattern for building blocks instead of constructor overloading ","user":{"login":"smcvb","id":4687743,"node_id":"MDQ6VXNlcjQ2ODc3NDM=","avatar_url":"https://avatars3.githubusercontent.com/u/4687743?v=4","gravatar_id":"","url":"https://api.github.com/users/smcvb","html_url":"https://github.com/smcvb","followers_url":"https://api.github.com/users/smcvb/followers","following_url":"https://api.github.com/users/smcvb/following{/other_user}","gists_url":"https://api.github.com/users/smcvb/gists{/gist_id}","starred_url":"https://api.github.com/users/smcvb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smcvb/subscriptions","organizations_url":"https://api.github.com/users/smcvb/orgs","repos_url":"https://api.github.com/users/smcvb/repos","events_url":"https://api.github.com/users/smcvb/events{/privacy}","received_events_url":"https://api.github.com/users/smcvb/received_events","type":"User","site_admin":false},"body":"This pull request introduces the Builder pattern in a couple infrastructure components. This should diminish the number of overloaded constructors, thus simplifying the desired form to construct a given infra component. Additionally, it opens up the possibility to dynamically add and remove fields without breaking backwards compatibility.\r\n\r\nThis is part 9 in a series of pull requests addressing this issue.\r\nMore specifically, this issue adjust all `EventStorageEngine` implementations.\r\nThe following components have been given a builder pattern:\r\n\r\n- `AbstractEventStorageEngine`\r\n- `BatchingEventStorageEngine`\r\n- `JpaEventStorageEngine`\r\n- `JdbcEventStorageEngine`\r\n- `MongoEventStorageEngine`\r\n- `AxonServerEventStore.AxonIQEventStorageEngine`","created_at":"2018-10-02T14:59:34Z","updated_at":"2018-10-03T12:00:10Z","closed_at":null,"merged_at":null,"merge_commit_sha":"954512f75bd3b817a5da91dbc474ee0886512d17","assignee":{"login":"smcvb","id":4687743,"node_id":"MDQ6VXNlcjQ2ODc3NDM=","avatar_url":"https://avatars3.githubusercontent.com/u/4687743?v=4","gravatar_id":"","url":"https://api.github.com/users/smcvb","html_url":"https://github.com/smcvb","followers_url":"https://api.github.com/users/smcvb/followers","following_url":"https://api.github.com/users/smcvb/following{/other_user}","gists_url":"https://api.github.com/users/smcvb/gists{/gist_id}","starred_url":"https://api.github.com/users/smcvb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smcvb/subscriptions","organizations_url":"https://api.github.com/users/smcvb/orgs","repos_url":"https://api.github.com/users/smcvb/repos","events_url":"https://api.github.com/users/smcvb/events{/privacy}","received_events_url":"https://api.github.com/users/smcvb/received_events","type":"User","site_admin":false},"assignees":[{"login":"smcvb","id":4687743,"node_id":"MDQ6VXNlcjQ2ODc3NDM=","avatar_url":"https://avatars3.githubusercontent.com/u/4687743?v=4","gravatar_id":"","url":"https://api.github.com/users/smcvb","html_url":"https://github.com/smcvb","followers_url":"https://api.github.com/users/smcvb/followers","following_url":"https://api.github.com/users/smcvb/following{/other_user}","gists_url":"https://api.github.com/users/smcvb/gists{/gist_id}","starred_url":"https://api.github.com/users/smcvb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smcvb/subscriptions","organizations_url":"https://api.github.com/users/smcvb/orgs","repos_url":"https://api.github.com/users/smcvb/repos","events_url":"https://api.github.com/users/smcvb/events{/privacy}","received_events_url":"https://api.github.com/users/smcvb/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"abuijze","id":152721,"node_id":"MDQ6VXNlcjE1MjcyMQ==","avatar_url":"https://avatars2.githubusercontent.com/u/152721?v=4","gravatar_id":"","url":"https://api.github.com/users/abuijze","html_url":"https://github.com/abuijze","followers_url":"https://api.github.com/users/abuijze/followers","following_url":"https://api.github.com/users/abuijze/following{/other_user}","gists_url":"https://api.github.com/users/abuijze/gists{/gist_id}","starred_url":"https://api.github.com/users/abuijze/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/abuijze/subscriptions","organizations_url":"https://api.github.com/users/abuijze/orgs","repos_url":"https://api.github.com/users/abuijze/repos","events_url":"https://api.github.com/users/abuijze/events{/privacy}","received_events_url":"https://api.github.com/users/abuijze/received_events","type":"User","site_admin":false},{"login":"m1l4n54v1c","id":29159560,"node_id":"MDQ6VXNlcjI5MTU5NTYw","avatar_url":"https://avatars2.githubusercontent.com/u/29159560?v=4","gravatar_id":"","url":"https://api.github.com/users/m1l4n54v1c","html_url":"https://github.com/m1l4n54v1c","followers_url":"https://api.github.com/users/m1l4n54v1c/followers","following_url":"https://api.github.com/users/m1l4n54v1c/following{/other_user}","gists_url":"https://api.github.com/users/m1l4n54v1c/gists{/gist_id}","starred_url":"https://api.github.com/users/m1l4n54v1c/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/m1l4n54v1c/subscriptions","organizations_url":"https://api.github.com/users/m1l4n54v1c/orgs","repos_url":"https://api.github.com/users/m1l4n54v1c/repos","events_url":"https://api.github.com/users/m1l4n54v1c/events{/privacy}","received_events_url":"https://api.github.com/users/m1l4n54v1c/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":1011328595,"node_id":"MDU6TGFiZWwxMDExMzI4NTk1","url":"https://api.github.com/repos/AxonFramework/AxonFramework/labels/Priority%201:%20Must","name":"Priority 1: Must","color":"cef433","default":false},{"id":1011335109,"node_id":"MDU6TGFiZWwxMDExMzM1MTA5","url":"https://api.github.com/repos/AxonFramework/AxonFramework/labels/Status:%20In%20Progress","name":"Status: In Progress","color":"55edb2","default":false},{"id":195185,"node_id":"MDU6TGFiZWwxOTUxODU=","url":"https://api.github.com/repos/AxonFramework/AxonFramework/labels/Type:%20Enhancement","name":"Type: Enhancement","color":"fbca04","default":false}],"milestone":{"url":"https://api.github.com/repos/AxonFramework/AxonFramework/milestones/28","html_url":"https://github.com/AxonFramework/AxonFramework/milestone/28","labels_url":"https://api.github.com/repos/AxonFramework/AxonFramework/milestones/28/labels","id":3681600,"node_id":"MDk6TWlsZXN0b25lMzY4MTYwMA==","number":28,"title":"Release 4.0","description":null,"creator":{"login":"smcvb","id":4687743,"node_id":"MDQ6VXNlcjQ2ODc3NDM=","avatar_url":"https://avatars3.githubusercontent.com/u/4687743?v=4","gravatar_id":"","url":"https://api.github.com/users/smcvb","html_url":"https://github.com/smcvb","followers_url":"https://api.github.com/users/smcvb/followers","following_url":"https://api.github.com/users/smcvb/following{/other_user}","gists_url":"https://api.github.com/users/smcvb/gists{/gist_id}","starred_url":"https://api.github.com/users/smcvb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smcvb/subscriptions","organizations_url":"https://api.github.com/users/smcvb/orgs","repos_url":"https://api.github.com/users/smcvb/repos","events_url":"https://api.github.com/users/smcvb/events{/privacy}","received_events_url":"https://api.github.com/users/smcvb/received_events","type":"User","site_admin":false},"open_issues":15,"closed_issues":16,"state":"open","created_at":"2018-09-24T09:21:48Z","updated_at":"2018-10-03T11:33:23Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/AxonFramework/AxonFramework/pulls/806/commits","review_comments_url":"https://api.github.com/repos/AxonFramework/AxonFramework/pulls/806/comments","review_comment_url":"https://api.github.com/repos/AxonFramework/AxonFramework/pulls/comments{/number}","comments_url":"https://api.github.com/repos/AxonFramework/AxonFramework/issues/806/comments","statuses_url":"https://api.github.com/repos/AxonFramework/AxonFramework/statuses/add7a3c3639490096371967ef4056b5447734bfb","head":{"label":"AxonFramework:feature/754-9","ref":"feature/754-9","sha":"add7a3c3639490096371967ef4056b5447734bfb","user":{"login":"AxonFramework","id":1237237,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyMzcyMzc=","avatar_url":"https://avatars1.githubusercontent.com/u/1237237?v=4","gravatar_id":"","url":"https://api.github.com/users/AxonFramework","html_url":"https://github.com/AxonFramework","followers_url":"https://api.github.com/users/AxonFramework/followers","following_url":"https://api.github.com/users/AxonFramework/following{/other_user}","gists_url":"https://api.github.com/users/AxonFramework/gists{/gist_id}","starred_url":"https://api.github.com/users/AxonFramework/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AxonFramework/subscriptions","organizations_url":"https://api.github.com/users/AxonFramework/orgs","repos_url":"https://api.github.com/users/AxonFramework/repos","events_url":"https://api.github.com/users/AxonFramework/events{/privacy}","received_events_url":"https://api.github.com/users/AxonFramework/received_events","type":"Organization","site_admin":false},"repo":{"id":2899580,"node_id":"MDEwOlJlcG9zaXRvcnkyODk5NTgw","name":"AxonFramework","full_name":"AxonFramework/AxonFramework","private":false,"owner":{"login":"AxonFramework","id":1237237,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyMzcyMzc=","avatar_url":"https://avatars1.githubusercontent.com/u/1237237?v=4","gravatar_id":"","url":"https://api.github.com/users/AxonFramework","html_url":"https://github.com/AxonFramework","followers_url":"https://api.github.com/users/AxonFramework/followers","following_url":"https://api.github.com/users/AxonFramework/following{/other_user}","gists_url":"https://api.github.com/users/AxonFramework/gists{/gist_id}","starred_url":"https://api.github.com/users/AxonFramework/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AxonFramework/subscriptions","organizations_url":"https://api.github.com/users/AxonFramework/orgs","repos_url":"https://api.github.com/users/AxonFramework/repos","events_url":"https://api.github.com/users/AxonFramework/events{/privacy}","received_events_url":"https://api.github.com/users/AxonFramework/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/AxonFramework/AxonFramework","description":"High Performance and Scalability framework for Java","fork":false,"url":"https://api.github.com/repos/AxonFramework/AxonFramework","forks_url":"https://api.github.com/repos/AxonFramework/AxonFramework/forks","keys_url":"https://api.github.com/repos/AxonFramework/AxonFramework/keys{/key_id}","collaborators_url":"https://api.github.com/repos/AxonFramework/AxonFramework/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/AxonFramework/AxonFramework/teams","hooks_url":"https://api.github.com/repos/AxonFramework/AxonFramework/hooks","issue_events_url":"https://api.github.com/repos/AxonFramework/AxonFramework/issues/events{/number}","events_url":"https://api.github.com/repos/AxonFramework/AxonFramework/events","assignees_url":"https://api.github.com/repos/AxonFramework/AxonFramework/assignees{/user}","branches_url":"https://api.github.com/repos/AxonFramework/AxonFramework/branches{/branch}","tags_url":"https://api.github.com/repos/AxonFramework/AxonFramework/tags","blobs_url":"https://api.github.com/repos/AxonFramework/AxonFramework/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/AxonFramework/AxonFramework/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/AxonFramework/AxonFramework/git/refs{/sha}","trees_url":"https://api.github.com/repos/AxonFramework/AxonFramework/git/trees{/sha}","statuses_url":"https://api.github.com/repos/AxonFramework/AxonFramework/statuses/{sha}","languages_url":"https://api.github.com/repos/AxonFramework/AxonFramework/languages","stargazers_url":"https://api.github.com/repos/AxonFramework/AxonFramework/stargazers","contributors_url":"https://api.github.com/repos/AxonFramework/AxonFramework/contributors","subscribers_url":"https://api.github.com/repos/AxonFramework/AxonFramework/subscribers","subscription_url":"https://api.github.com/repos/AxonFramework/AxonFramework/subscription","commits_url":"https://api.github.com/repos/AxonFramework/AxonFramework/commits{/sha}","git_commits_url":"https://api.github.com/repos/AxonFramework/AxonFramework/git/commits{/sha}","comments_url":"https://api.github.com/repos/AxonFramework/AxonFramework/comments{/number}","issue_comment_url":"https://api.github.com/repos/AxonFramework/AxonFramework/issues/comments{/number}","contents_url":"https://api.github.com/repos/AxonFramework/AxonFramework/contents/{+path}","compare_url":"https://api.github.com/repos/AxonFramework/AxonFramework/compare/{base}...{head}","merges_url":"https://api.github.com/repos/AxonFramework/AxonFramework/merges","archive_url":"https://api.github.com/repos/AxonFramework/AxonFramework/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/AxonFramework/AxonFramework/downloads","issues_url":"https://api.github.com/repos/AxonFramework/AxonFramework/issues{/number}","pulls_url":"https://api.github.com/repos/AxonFramework/AxonFramework/pulls{/number}","milestones_url":"https://api.github.com/repos/AxonFramework/AxonFramework/milestones{/number}","notifications_url":"https://api.github.com/repos/AxonFramework/AxonFramework/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/AxonFramework/AxonFramework/labels{/name}","releases_url":"https://api.github.com/repos/AxonFramework/AxonFramework/releases{/id}","deployments_url":"https://api.github.com/repos/AxonFramework/AxonFramework/deployments","created_at":"2011-12-02T16:04:42Z","updated_at":"2018-10-01T08:15:44Z","pushed_at":"2018-10-03T11:49:13Z","git_url":"git://github.com/AxonFramework/AxonFramework.git","ssh_url":"git@github.com:AxonFramework/AxonFramework.git","clone_url":"https://github.com/AxonFramework/AxonFramework.git","svn_url":"https://github.com/AxonFramework/AxonFramework","homepage":"www.axonframework.org","size":25767,"stargazers_count":1333,"watchers_count":1333,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":412,"mirror_url":null,"archived":false,"open_issues_count":90,"license":{"key":"other","name":"NOASSERTION","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":412,"open_issues":90,"watchers":1333,"default_branch":"master"}},"base":{"label":"AxonFramework:feature/754-8","ref":"feature/754-8","sha":"d5ad041e7c3919769ec781773f7028db39e6005f","user":{"login":"AxonFramework","id":1237237,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyMzcyMzc=","avatar_url":"https://avatars1.githubusercontent.com/u/1237237?v=4","gravatar_id":"","url":"https://api.github.com/users/AxonFramework","html_url":"https://github.com/AxonFramework","followers_url":"https://api.github.com/users/AxonFramework/followers","following_url":"https://api.github.com/users/AxonFramework/following{/other_user}","gists_url":"https://api.github.com/users/AxonFramework/gists{/gist_id}","starred_url":"https://api.github.com/users/AxonFramework/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AxonFramework/subscriptions","organizations_url":"https://api.github.com/users/AxonFramework/orgs","repos_url":"https://api.github.com/users/AxonFramework/repos","events_url":"https://api.github.com/users/AxonFramework/events{/privacy}","received_events_url":"https://api.github.com/users/AxonFramework/received_events","type":"Organization","site_admin":false},"repo":{"id":2899580,"node_id":"MDEwOlJlcG9zaXRvcnkyODk5NTgw","name":"AxonFramework","full_name":"AxonFramework/AxonFramework","private":false,"owner":{"login":"AxonFramework","id":1237237,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyMzcyMzc=","avatar_url":"https://avatars1.githubusercontent.com/u/1237237?v=4","gravatar_id":"","url":"https://api.github.com/users/AxonFramework","html_url":"https://github.com/AxonFramework","followers_url":"https://api.github.com/users/AxonFramework/followers","following_url":"https://api.github.com/users/AxonFramework/following{/other_user}","gists_url":"https://api.github.com/users/AxonFramework/gists{/gist_id}","starred_url":"https://api.github.com/users/AxonFramework/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AxonFramework/subscriptions","organizations_url":"https://api.github.com/users/AxonFramework/orgs","repos_url":"https://api.github.com/users/AxonFramework/repos","events_url":"https://api.github.com/users/AxonFramework/events{/privacy}","received_events_url":"https://api.github.com/users/AxonFramework/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/AxonFramework/AxonFramework","description":"High Performance and Scalability framework for Java","fork":false,"url":"https://api.github.com/repos/AxonFramework/AxonFramework","forks_url":"https://api.github.com/repos/AxonFramework/AxonFramework/forks","keys_url":"https://api.github.com/repos/AxonFramework/AxonFramework/keys{/key_id}","collaborators_url":"https://api.github.com/repos/AxonFramework/AxonFramework/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/AxonFramework/AxonFramework/teams","hooks_url":"https://api.github.com/repos/AxonFramework/AxonFramework/hooks","issue_events_url":"https://api.github.com/repos/AxonFramework/AxonFramework/issues/events{/number}","events_url":"https://api.github.com/repos/AxonFramework/AxonFramework/events","assignees_url":"https://api.github.com/repos/AxonFramework/AxonFramework/assignees{/user}","branches_url":"https://api.github.com/repos/AxonFramework/AxonFramework/branches{/branch}","tags_url":"https://api.github.com/repos/AxonFramework/AxonFramework/tags","blobs_url":"https://api.github.com/repos/AxonFramework/AxonFramework/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/AxonFramework/AxonFramework/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/AxonFramework/AxonFramework/git/refs{/sha}","trees_url":"https://api.github.com/repos/AxonFramework/AxonFramework/git/trees{/sha}","statuses_url":"https://api.github.com/repos/AxonFramework/AxonFramework/statuses/{sha}","languages_url":"https://api.github.com/repos/AxonFramework/AxonFramework/languages","stargazers_url":"https://api.github.com/repos/AxonFramework/AxonFramework/stargazers","contributors_url":"https://api.github.com/repos/AxonFramework/AxonFramework/contributors","subscribers_url":"https://api.github.com/repos/AxonFramework/AxonFramework/subscribers","subscription_url":"https://api.github.com/repos/AxonFramework/AxonFramework/subscription","commits_url":"https://api.github.com/repos/AxonFramework/AxonFramework/commits{/sha}","git_commits_url":"https://api.github.com/repos/AxonFramework/AxonFramework/git/commits{/sha}","comments_url":"https://api.github.com/repos/AxonFramework/AxonFramework/comments{/number}","issue_comment_url":"https://api.github.com/repos/AxonFramework/AxonFramework/issues/comments{/number}","contents_url":"https://api.github.com/repos/AxonFramework/AxonFramework/contents/{+path}","compare_url":"https://api.github.com/repos/AxonFramework/AxonFramework/compare/{base}...{head}","merges_url":"https://api.github.com/repos/AxonFramework/AxonFramework/merges","archive_url":"https://api.github.com/repos/AxonFramework/AxonFramework/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/AxonFramework/AxonFramework/downloads","issues_url":"https://api.github.com/repos/AxonFramework/AxonFramework/issues{/number}","pulls_url":"https://api.github.com/repos/AxonFramework/AxonFramework/pulls{/number}","milestones_url":"https://api.github.com/repos/AxonFramework/AxonFramework/milestones{/number}","notifications_url":"https://api.github.com/repos/AxonFramework/AxonFramework/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/AxonFramework/AxonFramework/labels{/name}","releases_url":"https://api.github.com/repos/AxonFramework/AxonFramework/releases{/id}","deployments_url":"https://api.github.com/repos/AxonFramework/AxonFramework/deployments","created_at":"2011-12-02T16:04:42Z","updated_at":"2018-10-01T08:15:44Z","pushed_at":"2018-10-03T11:49:13Z","git_url":"git://github.com/AxonFramework/AxonFramework.git","ssh_url":"git@github.com:AxonFramework/AxonFramework.git","clone_url":"https://github.com/AxonFramework/AxonFramework.git","svn_url":"https://github.com/AxonFramework/AxonFramework","homepage":"www.axonframework.org","size":25767,"stargazers_count":1333,"watchers_count":1333,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":412,"mirror_url":null,"archived":false,"open_issues_count":90,"license":{"key":"other","name":"NOASSERTION","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":412,"open_issues":90,"watchers":1333,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/AxonFramework/AxonFramework/pulls/806"},"html":{"href":"https://github.com/AxonFramework/AxonFramework/pull/806"},"issue":{"href":"https://api.github.com/repos/AxonFramework/AxonFramework/issues/806"},"comments":{"href":"https://api.github.com/repos/AxonFramework/AxonFramework/issues/806/comments"},"review_comments":{"href":"https://api.github.com/repos/AxonFramework/AxonFramework/pulls/806/comments"},"review_comment":{"href":"https://api.github.com/repos/AxonFramework/AxonFramework/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/AxonFramework/AxonFramework/pulls/806/commits"},"statuses":{"href":"https://api.github.com/repos/AxonFramework/AxonFramework/statuses/add7a3c3639490096371967ef4056b5447734bfb"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"smcvb"}}