{"action":"created","issue":{"url":"https://api.github.com/repos/infinispan/infinispan/issues/4564","repository_url":"https://api.github.com/repos/infinispan/infinispan","labels_url":"https://api.github.com/repos/infinispan/infinispan/issues/4564/labels{/name}","comments_url":"https://api.github.com/repos/infinispan/infinispan/issues/4564/comments","events_url":"https://api.github.com/repos/infinispan/infinispan/issues/4564/events","html_url":"https://github.com/infinispan/infinispan/pull/4564","id":178624347,"number":4564,"title":"Refactor command execution patterns","user":{"login":"rvansa","id":2167869,"avatar_url":"https://avatars.githubusercontent.com/u/2167869?v=3","gravatar_id":"","url":"https://api.github.com/users/rvansa","html_url":"https://github.com/rvansa","followers_url":"https://api.github.com/users/rvansa/followers","following_url":"https://api.github.com/users/rvansa/following{/other_user}","gists_url":"https://api.github.com/users/rvansa/gists{/gist_id}","starred_url":"https://api.github.com/users/rvansa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rvansa/subscriptions","organizations_url":"https://api.github.com/users/rvansa/orgs","repos_url":"https://api.github.com/users/rvansa/repos","events_url":"https://api.github.com/users/rvansa/events{/privacy}","received_events_url":"https://api.github.com/users/rvansa/received_events","type":"User","site_admin":false},"labels":[{"id":118835080,"url":"https://api.github.com/repos/infinispan/infinispan/labels/Ready%20for%20Review","name":"Ready for Review","color":"009800","default":false}],"state":"open","locked":false,"assignee":{"login":"danberindei","id":504907,"avatar_url":"https://avatars.githubusercontent.com/u/504907?v=3","gravatar_id":"","url":"https://api.github.com/users/danberindei","html_url":"https://github.com/danberindei","followers_url":"https://api.github.com/users/danberindei/followers","following_url":"https://api.github.com/users/danberindei/following{/other_user}","gists_url":"https://api.github.com/users/danberindei/gists{/gist_id}","starred_url":"https://api.github.com/users/danberindei/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danberindei/subscriptions","organizations_url":"https://api.github.com/users/danberindei/orgs","repos_url":"https://api.github.com/users/danberindei/repos","events_url":"https://api.github.com/users/danberindei/events{/privacy}","received_events_url":"https://api.github.com/users/danberindei/received_events","type":"User","site_admin":false},"assignees":[{"login":"danberindei","id":504907,"avatar_url":"https://avatars.githubusercontent.com/u/504907?v=3","gravatar_id":"","url":"https://api.github.com/users/danberindei","html_url":"https://github.com/danberindei","followers_url":"https://api.github.com/users/danberindei/followers","following_url":"https://api.github.com/users/danberindei/following{/other_user}","gists_url":"https://api.github.com/users/danberindei/gists{/gist_id}","starred_url":"https://api.github.com/users/danberindei/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danberindei/subscriptions","organizations_url":"https://api.github.com/users/danberindei/orgs","repos_url":"https://api.github.com/users/danberindei/repos","events_url":"https://api.github.com/users/danberindei/events{/privacy}","received_events_url":"https://api.github.com/users/danberindei/received_events","type":"User","site_admin":false},{"login":"pruivo","id":1492066,"avatar_url":"https://avatars.githubusercontent.com/u/1492066?v=3","gravatar_id":"","url":"https://api.github.com/users/pruivo","html_url":"https://github.com/pruivo","followers_url":"https://api.github.com/users/pruivo/followers","following_url":"https://api.github.com/users/pruivo/following{/other_user}","gists_url":"https://api.github.com/users/pruivo/gists{/gist_id}","starred_url":"https://api.github.com/users/pruivo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pruivo/subscriptions","organizations_url":"https://api.github.com/users/pruivo/orgs","repos_url":"https://api.github.com/users/pruivo/repos","events_url":"https://api.github.com/users/pruivo/events{/privacy}","received_events_url":"https://api.github.com/users/pruivo/received_events","type":"User","site_admin":false}],"milestone":null,"comments":22,"created_at":"2016-09-22T14:23:27Z","updated_at":"2016-12-02T12:42:05Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/infinispan/infinispan/pulls/4564","html_url":"https://github.com/infinispan/infinispan/pull/4564","diff_url":"https://github.com/infinispan/infinispan/pull/4564.diff","patch_url":"https://github.com/infinispan/infinispan/pull/4564.patch"},"body":"Depends on #4493 (so you may ignore first two commits).\n\nMost weight of this PR is in 78a1297725f8e3691b0a9934b93a6c2b7799e66f, copypasting commit description:\n- EntryWrappingInterceptor has well-defined behaviour (see javadoc)\n- Add VisitableCommand.executionType() that captures the routing &\n  execution pattern of commands in single enum.\n- Remove VisitableCommand.alwaysReadsExistingValues().\n- Deprecate CacheEntry.rollback(), StateChangingEntry and its methods\n  - COPIED flag in ReadCommittedEntry\n- Remove oldValue from ReadCommittedEntry, add\n  MVCCEntry.setValue(v, isRetry) and getValue(isRetry) with some logic\n  in commands that returns correct previous value upon retry (with\n  repeatable reads - without them, entry is removed from ctx before retry).\n- Make ClusteredGetCommand topology-aware (add topologyId).\n- Functional commands, GetAllCommand and PutMapCommand rewritten to use\n  RpcManager.invokeRemotelyAsync and behave asynchronously.\n- PutMapCommmand (optionally) returns List<Map.Entry> instead of Map\n  to share code with functional commands (and generally be more inline).\n- (Non-clustered) listeners now fire only on the owners, not on originator.\n- Make DeltaAwareCacheEntry MVCC (though the plan is to remove it altogether).\n"},"comment":{"url":"https://api.github.com/repos/infinispan/infinispan/issues/comments/264445974","html_url":"https://github.com/infinispan/infinispan/pull/4564#issuecomment-264445974","issue_url":"https://api.github.com/repos/infinispan/infinispan/issues/4564","id":264445974,"user":{"login":"rvansa","id":2167869,"avatar_url":"https://avatars.githubusercontent.com/u/2167869?v=3","gravatar_id":"","url":"https://api.github.com/users/rvansa","html_url":"https://github.com/rvansa","followers_url":"https://api.github.com/users/rvansa/followers","following_url":"https://api.github.com/users/rvansa/following{/other_user}","gists_url":"https://api.github.com/users/rvansa/gists{/gist_id}","starred_url":"https://api.github.com/users/rvansa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rvansa/subscriptions","organizations_url":"https://api.github.com/users/rvansa/orgs","repos_url":"https://api.github.com/users/rvansa/repos","events_url":"https://api.github.com/users/rvansa/events{/privacy}","received_events_url":"https://api.github.com/users/rvansa/received_events","type":"User","site_admin":false},"created_at":"2016-12-02T12:42:05Z","updated_at":"2016-12-02T12:42:05Z","body":"Rebased on top of #4669 \r\nI've also reverted return value for PutMapCommand from `List<Map.Entry>` to `Map`, as it would require more changes in triangle impl (those will be needed anyway for functional commands triangelization, but that can wait)."}}
{"actor":{"display_login":"rvansa"}}