{"action":"created","comment":{"url":"https://api.github.com/repos/hazelcast/hazelcast/pulls/comments/210259123","pull_request_review_id":146434038,"id":210259123,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxMDI1OTEyMw==","diff_hunk":"@@ -16,109 +16,80 @@\n \n package com.hazelcast.query.impl;\n \n-import com.hazelcast.config.CacheDeserializedValues;\n-import com.hazelcast.config.MapConfig;\n import com.hazelcast.internal.serialization.InternalSerializationService;\n-import com.hazelcast.map.impl.MapContainer;\n-import com.hazelcast.map.impl.MapServiceContext;\n-import com.hazelcast.map.impl.query.DefaultIndexProvider;\n-import com.hazelcast.map.impl.query.IndexProvider;\n import com.hazelcast.monitor.impl.GlobalIndexesStats;\n import com.hazelcast.monitor.impl.IndexesStats;\n import com.hazelcast.monitor.impl.PartitionIndexesStats;\n import com.hazelcast.nio.serialization.Data;\n import com.hazelcast.query.IndexAwarePredicate;\n import com.hazelcast.query.Predicate;\n import com.hazelcast.query.impl.getters.Extractors;\n-import com.hazelcast.spi.NodeEngine;\n+import com.hazelcast.spi.serialization.SerializationService;\n \n import java.util.Set;\n import java.util.concurrent.ConcurrentHashMap;\n import java.util.concurrent.ConcurrentMap;\n import java.util.concurrent.atomic.AtomicReference;\n \n+import static com.hazelcast.util.Preconditions.checkNotNull;\n+\n /**\n  * Contains all indexes for a data-structure, e.g. an IMap.\n  */\n @SuppressWarnings(\"checkstyle:finalclass\")\n public class Indexes {\n     private static final InternalIndex[] EMPTY_INDEX = {};\n \n-    private final InternalSerializationService serializationService;\n-    private final IndexProvider indexProvider;\n-    private final Extractors extractors;\n     private final boolean global;\n-    private final IndexCopyBehavior copyBehavior;\n     private final boolean queryableEntriesAreCached;\n-    private final QueryContextProvider queryContextProvider;\n     private final IndexesStats stats;\n+    private final Extractors extractors;\n+    private final IndexProvider indexProvider;\n+    private final IndexCopyBehavior indexCopyBehavior;\n+    private final QueryContextProvider queryContextProvider;\n+    private final InternalSerializationService serializationService;\n \n     private final ConcurrentMap<String, InternalIndex> mapIndexes = new ConcurrentHashMap<String, InternalIndex>(3);\n     private final AtomicReference<InternalIndex[]> indexes = new AtomicReference<InternalIndex[]>(EMPTY_INDEX);\n \n     private volatile boolean hasIndex;\n \n-    private Indexes(MapContainer mapContainer, boolean global) {\n-        MapServiceContext mapServiceContext = mapContainer.getMapServiceContext();\n-        MapConfig mapConfig = mapContainer.getMapConfig();\n-        NodeEngine nodeEngine = mapServiceContext.getNodeEngine();\n+    private Indexes(InternalSerializationService serializationService,\n+                    IndexCopyBehavior indexCopyBehavior,\n+                    Extractors extractors,\n+                    IndexProvider indexProvider,\n+                    boolean queryableEntriesAreCached,\n+                    boolean statisticsEnabled,\n+                    boolean global) {\n \n-        this.serializationService = (InternalSerializationService) nodeEngine.getSerializationService();\n-        this.indexProvider = mapServiceContext.getIndexProvider(mapConfig);\n-        this.extractors = mapContainer.getExtractors();\n         this.global = global;\n-        this.copyBehavior = mapServiceContext.getIndexCopyBehavior();\n-        this.queryableEntriesAreCached = mapConfig.getCacheDeserializedValues() != CacheDeserializedValues.NEVER;\n-        this.queryContextProvider = createQueryContextProvider(mapConfig, global);\n-        this.stats = createStats(mapConfig, global);\n-    }\n-\n-    private Indexes(InternalSerializationService serializationService, IndexCopyBehavior copyBehavior) {\n+        this.indexCopyBehavior = indexCopyBehavior;\n         this.serializationService = serializationService;\n-        this.indexProvider = new DefaultIndexProvider();\n-        this.extractors = Extractors.empty();\n-        this.global = true;\n-        this.copyBehavior = copyBehavior;\n-        this.queryableEntriesAreCached = false;\n-        this.queryContextProvider = new GlobalQueryContextProvider();\n-        this.stats = IndexesStats.EMPTY;\n+        this.queryableEntriesAreCached = queryableEntriesAreCached;\n+        this.stats = createStats(global, statisticsEnabled);\n+        this.extractors = extractors == null ? Extractors.empty() : extractors;\n+        this.indexProvider = indexProvider == null ? new DefaultIndexProvider() : indexProvider;\n+        this.queryContextProvider = createQueryContextProvider(this, global, statisticsEnabled);\n     }\n \n-    /**\n-     * Creates a new indexes instance for use as a global indexes for the given\n-     * map container.\n-     *\n-     * @param mapContainer the container of the map.\n-     * @return the constructed indexes.\n-     */\n-    public static Indexes createGlobalIndexes(MapContainer mapContainer) {\n-        return new Indexes(mapContainer, true);\n+    private static QueryContextProvider createQueryContextProvider(Indexes indexes, boolean global, boolean statisticsEnabled) {\n+        if (statisticsEnabled) {\n+            return global ? new GlobalQueryContextProviderWithStats() : new PartitionQueryContextProviderWithStats(indexes);\n+        } else {\n+            return global ? new GlobalQueryContextProvider() : new PartitionQueryContextProvider(indexes);\n+        }\n     }\n \n-    /**\n-     * Creates a new indexes instance for use as a partition indexes for the\n-     * given map container.\n-     *\n-     * @param mapContainer the container of the map.\n-     * @return the constructed indexes.\n-     */\n-    public static Indexes createPartitionIndexes(MapContainer mapContainer) {\n-        return new Indexes(mapContainer, false);\n+    private static IndexesStats createStats(boolean global, boolean statisticsEnabled) {\n+        if (statisticsEnabled) {\n+            return global ? new GlobalIndexesStats() : new PartitionIndexesStats();\n+        } else {\n+            return IndexesStats.EMPTY;\n+        }\n     }\n \n-    /**\n-     * Creates a new stand-alone (not attached to any map container) indexes\n-     * instance for the given serialization service and with the given index\n-     * copy behaviour.\n-     *\n-     * @param serializationService the serialization service to be used by the\n-     *                             new indexes.\n-     * @param copyBehavior         the desired copy behaviour of the new indexes.\n-     * @return the constructed indexes.\n-     */\n-    public static Indexes createStandaloneIndexes(InternalSerializationService serializationService,\n-                                                  IndexCopyBehavior copyBehavior) {\n-        return new Indexes(serializationService, copyBehavior);\n+    public static Builder newBuilder(IndexCopyBehavior indexCopyBehavior, SerializationService ss) {","path":"hazelcast/src/main/java/com/hazelcast/query/impl/Indexes.java","position":null,"original_position":140,"commit_id":"482dbc215fefd7c76f45f161f7cf14afe667ee0c","original_commit_id":"e9f64db5e802e958b97498cc90ff1f928b901f79","user":{"login":"ahmetmircik","id":2960360,"node_id":"MDQ6VXNlcjI5NjAzNjA=","avatar_url":"https://avatars2.githubusercontent.com/u/2960360?v=4","gravatar_id":"","url":"https://api.github.com/users/ahmetmircik","html_url":"https://github.com/ahmetmircik","followers_url":"https://api.github.com/users/ahmetmircik/followers","following_url":"https://api.github.com/users/ahmetmircik/following{/other_user}","gists_url":"https://api.github.com/users/ahmetmircik/gists{/gist_id}","starred_url":"https://api.github.com/users/ahmetmircik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahmetmircik/subscriptions","organizations_url":"https://api.github.com/users/ahmetmircik/orgs","repos_url":"https://api.github.com/users/ahmetmircik/repos","events_url":"https://api.github.com/users/ahmetmircik/events{/privacy}","received_events_url":"https://api.github.com/users/ahmetmircik/received_events","type":"User","site_admin":false},"body":"fixed","created_at":"2018-08-15T12:58:34Z","updated_at":"2018-08-15T12:58:34Z","html_url":"https://github.com/hazelcast/hazelcast/pull/13584#discussion_r210259123","pull_request_url":"https://api.github.com/repos/hazelcast/hazelcast/pulls/13584","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/hazelcast/hazelcast/pulls/comments/210259123"},"html":{"href":"https://github.com/hazelcast/hazelcast/pull/13584#discussion_r210259123"},"pull_request":{"href":"https://api.github.com/repos/hazelcast/hazelcast/pulls/13584"}},"in_reply_to_id":210241392},"pull_request":{"url":"https://api.github.com/repos/hazelcast/hazelcast/pulls/13584","id":208515355,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA4NTE1MzU1","html_url":"https://github.com/hazelcast/hazelcast/pull/13584","diff_url":"https://github.com/hazelcast/hazelcast/pull/13584.diff","patch_url":"https://github.com/hazelcast/hazelcast/pull/13584.patch","issue_url":"https://api.github.com/repos/hazelcast/hazelcast/issues/13584","number":13584,"state":"open","locked":false,"title":"Introduced indexes builder","user":{"login":"ahmetmircik","id":2960360,"node_id":"MDQ6VXNlcjI5NjAzNjA=","avatar_url":"https://avatars2.githubusercontent.com/u/2960360?v=4","gravatar_id":"","url":"https://api.github.com/users/ahmetmircik","html_url":"https://github.com/ahmetmircik","followers_url":"https://api.github.com/users/ahmetmircik/followers","following_url":"https://api.github.com/users/ahmetmircik/following{/other_user}","gists_url":"https://api.github.com/users/ahmetmircik/gists{/gist_id}","starred_url":"https://api.github.com/users/ahmetmircik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahmetmircik/subscriptions","organizations_url":"https://api.github.com/users/ahmetmircik/orgs","repos_url":"https://api.github.com/users/ahmetmircik/repos","events_url":"https://api.github.com/users/ahmetmircik/events{/privacy}","received_events_url":"https://api.github.com/users/ahmetmircik/received_events","type":"User","site_admin":false},"body":"addressed https://github.com/hazelcast/hazelcast/pull/13359#discussion_r209520150 and https://github.com/hazelcast/hazelcast/pull/13359#discussion_r209520049\r\n\r\n\r\n- Introduced `Indexes#Builder`\r\n- Moved `IndexProvider` and `DefaultIndexProvider` to `com.hazelcast.query.impl`\r\n\r\nee counterpart: https://github.com/hazelcast/hazelcast-enterprise/pull/2314","created_at":"2018-08-15T09:33:15Z","updated_at":"2018-08-15T12:58:34Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d4774363b3cad17ab0676bd25631f33fe8d3594b","assignee":null,"assignees":[],"requested_reviewers":[{"login":"blazember","id":5200389,"node_id":"MDQ6VXNlcjUyMDAzODk=","avatar_url":"https://avatars1.githubusercontent.com/u/5200389?v=4","gravatar_id":"","url":"https://api.github.com/users/blazember","html_url":"https://github.com/blazember","followers_url":"https://api.github.com/users/blazember/followers","following_url":"https://api.github.com/users/blazember/following{/other_user}","gists_url":"https://api.github.com/users/blazember/gists{/gist_id}","starred_url":"https://api.github.com/users/blazember/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blazember/subscriptions","organizations_url":"https://api.github.com/users/blazember/orgs","repos_url":"https://api.github.com/users/blazember/repos","events_url":"https://api.github.com/users/blazember/events{/privacy}","received_events_url":"https://api.github.com/users/blazember/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":838974591,"node_id":"MDU6TGFiZWw4Mzg5NzQ1OTE=","url":"https://api.github.com/repos/hazelcast/hazelcast/labels/Interface:%20IMap","name":"Interface: IMap","color":"efefef","default":false},{"id":137752575,"node_id":"MDU6TGFiZWwxMzc3NTI1NzU=","url":"https://api.github.com/repos/hazelcast/hazelcast/labels/Team:%20Core","name":"Team: Core","color":"109def","default":false},{"id":1740692,"node_id":"MDU6TGFiZWwxNzQwNjky","url":"https://api.github.com/repos/hazelcast/hazelcast/labels/Type:%20Enhancement","name":"Type: Enhancement","color":"5319e7","default":false}],"milestone":{"url":"https://api.github.com/repos/hazelcast/hazelcast/milestones/106","html_url":"https://github.com/hazelcast/hazelcast/milestone/106","labels_url":"https://api.github.com/repos/hazelcast/hazelcast/milestones/106/labels","id":2867560,"node_id":"MDk6TWlsZXN0b25lMjg2NzU2MA==","number":106,"title":"3.11","description":"","creator":{"login":"jerrinot","id":158619,"node_id":"MDQ6VXNlcjE1ODYxOQ==","avatar_url":"https://avatars1.githubusercontent.com/u/158619?v=4","gravatar_id":"","url":"https://api.github.com/users/jerrinot","html_url":"https://github.com/jerrinot","followers_url":"https://api.github.com/users/jerrinot/followers","following_url":"https://api.github.com/users/jerrinot/following{/other_user}","gists_url":"https://api.github.com/users/jerrinot/gists{/gist_id}","starred_url":"https://api.github.com/users/jerrinot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jerrinot/subscriptions","organizations_url":"https://api.github.com/users/jerrinot/orgs","repos_url":"https://api.github.com/users/jerrinot/repos","events_url":"https://api.github.com/users/jerrinot/events{/privacy}","received_events_url":"https://api.github.com/users/jerrinot/received_events","type":"User","site_admin":false},"open_issues":239,"closed_issues":403,"state":"open","created_at":"2017-10-26T14:31:27Z","updated_at":"2018-08-15T10:42:27Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/hazelcast/hazelcast/pulls/13584/commits","review_comments_url":"https://api.github.com/repos/hazelcast/hazelcast/pulls/13584/comments","review_comment_url":"https://api.github.com/repos/hazelcast/hazelcast/pulls/comments{/number}","comments_url":"https://api.github.com/repos/hazelcast/hazelcast/issues/13584/comments","statuses_url":"https://api.github.com/repos/hazelcast/hazelcast/statuses/482dbc215fefd7c76f45f161f7cf14afe667ee0c","head":{"label":"ahmetmircik:fix/3.11/indexesBuilder","ref":"fix/3.11/indexesBuilder","sha":"482dbc215fefd7c76f45f161f7cf14afe667ee0c","user":{"login":"ahmetmircik","id":2960360,"node_id":"MDQ6VXNlcjI5NjAzNjA=","avatar_url":"https://avatars2.githubusercontent.com/u/2960360?v=4","gravatar_id":"","url":"https://api.github.com/users/ahmetmircik","html_url":"https://github.com/ahmetmircik","followers_url":"https://api.github.com/users/ahmetmircik/followers","following_url":"https://api.github.com/users/ahmetmircik/following{/other_user}","gists_url":"https://api.github.com/users/ahmetmircik/gists{/gist_id}","starred_url":"https://api.github.com/users/ahmetmircik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahmetmircik/subscriptions","organizations_url":"https://api.github.com/users/ahmetmircik/orgs","repos_url":"https://api.github.com/users/ahmetmircik/repos","events_url":"https://api.github.com/users/ahmetmircik/events{/privacy}","received_events_url":"https://api.github.com/users/ahmetmircik/received_events","type":"User","site_admin":false},"repo":{"id":13222351,"node_id":"MDEwOlJlcG9zaXRvcnkxMzIyMjM1MQ==","name":"hazelcast","full_name":"ahmetmircik/hazelcast","owner":{"login":"ahmetmircik","id":2960360,"node_id":"MDQ6VXNlcjI5NjAzNjA=","avatar_url":"https://avatars2.githubusercontent.com/u/2960360?v=4","gravatar_id":"","url":"https://api.github.com/users/ahmetmircik","html_url":"https://github.com/ahmetmircik","followers_url":"https://api.github.com/users/ahmetmircik/followers","following_url":"https://api.github.com/users/ahmetmircik/following{/other_user}","gists_url":"https://api.github.com/users/ahmetmircik/gists{/gist_id}","starred_url":"https://api.github.com/users/ahmetmircik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahmetmircik/subscriptions","organizations_url":"https://api.github.com/users/ahmetmircik/orgs","repos_url":"https://api.github.com/users/ahmetmircik/repos","events_url":"https://api.github.com/users/ahmetmircik/events{/privacy}","received_events_url":"https://api.github.com/users/ahmetmircik/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ahmetmircik/hazelcast","description":"Open Source In-Memory Data Grid","fork":true,"url":"https://api.github.com/repos/ahmetmircik/hazelcast","forks_url":"https://api.github.com/repos/ahmetmircik/hazelcast/forks","keys_url":"https://api.github.com/repos/ahmetmircik/hazelcast/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ahmetmircik/hazelcast/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ahmetmircik/hazelcast/teams","hooks_url":"https://api.github.com/repos/ahmetmircik/hazelcast/hooks","issue_events_url":"https://api.github.com/repos/ahmetmircik/hazelcast/issues/events{/number}","events_url":"https://api.github.com/repos/ahmetmircik/hazelcast/events","assignees_url":"https://api.github.com/repos/ahmetmircik/hazelcast/assignees{/user}","branches_url":"https://api.github.com/repos/ahmetmircik/hazelcast/branches{/branch}","tags_url":"https://api.github.com/repos/ahmetmircik/hazelcast/tags","blobs_url":"https://api.github.com/repos/ahmetmircik/hazelcast/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ahmetmircik/hazelcast/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ahmetmircik/hazelcast/git/refs{/sha}","trees_url":"https://api.github.com/repos/ahmetmircik/hazelcast/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ahmetmircik/hazelcast/statuses/{sha}","languages_url":"https://api.github.com/repos/ahmetmircik/hazelcast/languages","stargazers_url":"https://api.github.com/repos/ahmetmircik/hazelcast/stargazers","contributors_url":"https://api.github.com/repos/ahmetmircik/hazelcast/contributors","subscribers_url":"https://api.github.com/repos/ahmetmircik/hazelcast/subscribers","subscription_url":"https://api.github.com/repos/ahmetmircik/hazelcast/subscription","commits_url":"https://api.github.com/repos/ahmetmircik/hazelcast/commits{/sha}","git_commits_url":"https://api.github.com/repos/ahmetmircik/hazelcast/git/commits{/sha}","comments_url":"https://api.github.com/repos/ahmetmircik/hazelcast/comments{/number}","issue_comment_url":"https://api.github.com/repos/ahmetmircik/hazelcast/issues/comments{/number}","contents_url":"https://api.github.com/repos/ahmetmircik/hazelcast/contents/{+path}","compare_url":"https://api.github.com/repos/ahmetmircik/hazelcast/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ahmetmircik/hazelcast/merges","archive_url":"https://api.github.com/repos/ahmetmircik/hazelcast/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ahmetmircik/hazelcast/downloads","issues_url":"https://api.github.com/repos/ahmetmircik/hazelcast/issues{/number}","pulls_url":"https://api.github.com/repos/ahmetmircik/hazelcast/pulls{/number}","milestones_url":"https://api.github.com/repos/ahmetmircik/hazelcast/milestones{/number}","notifications_url":"https://api.github.com/repos/ahmetmircik/hazelcast/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ahmetmircik/hazelcast/labels{/name}","releases_url":"https://api.github.com/repos/ahmetmircik/hazelcast/releases{/id}","deployments_url":"https://api.github.com/repos/ahmetmircik/hazelcast/deployments","created_at":"2013-09-30T17:48:20Z","updated_at":"2018-05-28T10:37:37Z","pushed_at":"2018-08-15T12:57:55Z","git_url":"git://github.com/ahmetmircik/hazelcast.git","ssh_url":"git@github.com:ahmetmircik/hazelcast.git","clone_url":"https://github.com/ahmetmircik/hazelcast.git","svn_url":"https://github.com/ahmetmircik/hazelcast","homepage":"www.hazelcast.com","size":134616,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"hazelcast:master","ref":"master","sha":"f1af3ea29490e9d163bf97ae5a6519a1fdf823f7","user":{"login":"hazelcast","id":1453152,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE0NTMxNTI=","avatar_url":"https://avatars2.githubusercontent.com/u/1453152?v=4","gravatar_id":"","url":"https://api.github.com/users/hazelcast","html_url":"https://github.com/hazelcast","followers_url":"https://api.github.com/users/hazelcast/followers","following_url":"https://api.github.com/users/hazelcast/following{/other_user}","gists_url":"https://api.github.com/users/hazelcast/gists{/gist_id}","starred_url":"https://api.github.com/users/hazelcast/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hazelcast/subscriptions","organizations_url":"https://api.github.com/users/hazelcast/orgs","repos_url":"https://api.github.com/users/hazelcast/repos","events_url":"https://api.github.com/users/hazelcast/events{/privacy}","received_events_url":"https://api.github.com/users/hazelcast/received_events","type":"Organization","site_admin":false},"repo":{"id":3786237,"node_id":"MDEwOlJlcG9zaXRvcnkzNzg2MjM3","name":"hazelcast","full_name":"hazelcast/hazelcast","owner":{"login":"hazelcast","id":1453152,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE0NTMxNTI=","avatar_url":"https://avatars2.githubusercontent.com/u/1453152?v=4","gravatar_id":"","url":"https://api.github.com/users/hazelcast","html_url":"https://github.com/hazelcast","followers_url":"https://api.github.com/users/hazelcast/followers","following_url":"https://api.github.com/users/hazelcast/following{/other_user}","gists_url":"https://api.github.com/users/hazelcast/gists{/gist_id}","starred_url":"https://api.github.com/users/hazelcast/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hazelcast/subscriptions","organizations_url":"https://api.github.com/users/hazelcast/orgs","repos_url":"https://api.github.com/users/hazelcast/repos","events_url":"https://api.github.com/users/hazelcast/events{/privacy}","received_events_url":"https://api.github.com/users/hazelcast/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/hazelcast/hazelcast","description":"Open Source In-Memory Data Grid","fork":false,"url":"https://api.github.com/repos/hazelcast/hazelcast","forks_url":"https://api.github.com/repos/hazelcast/hazelcast/forks","keys_url":"https://api.github.com/repos/hazelcast/hazelcast/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hazelcast/hazelcast/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hazelcast/hazelcast/teams","hooks_url":"https://api.github.com/repos/hazelcast/hazelcast/hooks","issue_events_url":"https://api.github.com/repos/hazelcast/hazelcast/issues/events{/number}","events_url":"https://api.github.com/repos/hazelcast/hazelcast/events","assignees_url":"https://api.github.com/repos/hazelcast/hazelcast/assignees{/user}","branches_url":"https://api.github.com/repos/hazelcast/hazelcast/branches{/branch}","tags_url":"https://api.github.com/repos/hazelcast/hazelcast/tags","blobs_url":"https://api.github.com/repos/hazelcast/hazelcast/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hazelcast/hazelcast/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hazelcast/hazelcast/git/refs{/sha}","trees_url":"https://api.github.com/repos/hazelcast/hazelcast/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hazelcast/hazelcast/statuses/{sha}","languages_url":"https://api.github.com/repos/hazelcast/hazelcast/languages","stargazers_url":"https://api.github.com/repos/hazelcast/hazelcast/stargazers","contributors_url":"https://api.github.com/repos/hazelcast/hazelcast/contributors","subscribers_url":"https://api.github.com/repos/hazelcast/hazelcast/subscribers","subscription_url":"https://api.github.com/repos/hazelcast/hazelcast/subscription","commits_url":"https://api.github.com/repos/hazelcast/hazelcast/commits{/sha}","git_commits_url":"https://api.github.com/repos/hazelcast/hazelcast/git/commits{/sha}","comments_url":"https://api.github.com/repos/hazelcast/hazelcast/comments{/number}","issue_comment_url":"https://api.github.com/repos/hazelcast/hazelcast/issues/comments{/number}","contents_url":"https://api.github.com/repos/hazelcast/hazelcast/contents/{+path}","compare_url":"https://api.github.com/repos/hazelcast/hazelcast/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hazelcast/hazelcast/merges","archive_url":"https://api.github.com/repos/hazelcast/hazelcast/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hazelcast/hazelcast/downloads","issues_url":"https://api.github.com/repos/hazelcast/hazelcast/issues{/number}","pulls_url":"https://api.github.com/repos/hazelcast/hazelcast/pulls{/number}","milestones_url":"https://api.github.com/repos/hazelcast/hazelcast/milestones{/number}","notifications_url":"https://api.github.com/repos/hazelcast/hazelcast/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hazelcast/hazelcast/labels{/name}","releases_url":"https://api.github.com/repos/hazelcast/hazelcast/releases{/id}","deployments_url":"https://api.github.com/repos/hazelcast/hazelcast/deployments","created_at":"2012-03-21T12:25:18Z","updated_at":"2018-08-14T16:46:44Z","pushed_at":"2018-08-15T12:57:57Z","git_url":"git://github.com/hazelcast/hazelcast.git","ssh_url":"git@github.com:hazelcast/hazelcast.git","clone_url":"https://github.com/hazelcast/hazelcast.git","svn_url":"https://github.com/hazelcast/hazelcast","homepage":"http://www.hazelcast.org","size":133536,"stargazers_count":2709,"watchers_count":2709,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1044,"mirror_url":null,"archived":false,"open_issues_count":691,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":1044,"open_issues":691,"watchers":2709,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/hazelcast/hazelcast/pulls/13584"},"html":{"href":"https://github.com/hazelcast/hazelcast/pull/13584"},"issue":{"href":"https://api.github.com/repos/hazelcast/hazelcast/issues/13584"},"comments":{"href":"https://api.github.com/repos/hazelcast/hazelcast/issues/13584/comments"},"review_comments":{"href":"https://api.github.com/repos/hazelcast/hazelcast/pulls/13584/comments"},"review_comment":{"href":"https://api.github.com/repos/hazelcast/hazelcast/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/hazelcast/hazelcast/pulls/13584/commits"},"statuses":{"href":"https://api.github.com/repos/hazelcast/hazelcast/statuses/482dbc215fefd7c76f45f161f7cf14afe667ee0c"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"ahmetmircik"}}