{"action":"created","issue":{"url":"https://api.github.com/repos/netty/netty/issues/4607","repository_url":"https://api.github.com/repos/netty/netty","labels_url":"https://api.github.com/repos/netty/netty/issues/4607/labels{/name}","comments_url":"https://api.github.com/repos/netty/netty/issues/4607/comments","events_url":"https://api.github.com/repos/netty/netty/issues/4607/events","html_url":"https://github.com/netty/netty/pull/4607","id":123116594,"number":4607,"title":"General API for compression codecs","user":{"login":"idelpivnitskiy","id":3968288,"avatar_url":"https://avatars.githubusercontent.com/u/3968288?v=3","gravatar_id":"","url":"https://api.github.com/users/idelpivnitskiy","html_url":"https://github.com/idelpivnitskiy","followers_url":"https://api.github.com/users/idelpivnitskiy/followers","following_url":"https://api.github.com/users/idelpivnitskiy/following{/other_user}","gists_url":"https://api.github.com/users/idelpivnitskiy/gists{/gist_id}","starred_url":"https://api.github.com/users/idelpivnitskiy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/idelpivnitskiy/subscriptions","organizations_url":"https://api.github.com/users/idelpivnitskiy/orgs","repos_url":"https://api.github.com/users/idelpivnitskiy/repos","events_url":"https://api.github.com/users/idelpivnitskiy/events{/privacy}","received_events_url":"https://api.github.com/users/idelpivnitskiy/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"trustin","id":173918,"avatar_url":"https://avatars.githubusercontent.com/u/173918?v=3","gravatar_id":"","url":"https://api.github.com/users/trustin","html_url":"https://github.com/trustin","followers_url":"https://api.github.com/users/trustin/followers","following_url":"https://api.github.com/users/trustin/following{/other_user}","gists_url":"https://api.github.com/users/trustin/gists{/gist_id}","starred_url":"https://api.github.com/users/trustin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/trustin/subscriptions","organizations_url":"https://api.github.com/users/trustin/orgs","repos_url":"https://api.github.com/users/trustin/repos","events_url":"https://api.github.com/users/trustin/events{/privacy}","received_events_url":"https://api.github.com/users/trustin/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/netty/netty/milestones/136","html_url":"https://github.com/netty/netty/milestones/4.1.0.CR4","labels_url":"https://api.github.com/repos/netty/netty/milestones/136/labels","id":1594848,"number":136,"title":"4.1.0.CR4","description":"","creator":{"login":"normanmaurer","id":439362,"avatar_url":"https://avatars.githubusercontent.com/u/439362?v=3","gravatar_id":"","url":"https://api.github.com/users/normanmaurer","html_url":"https://github.com/normanmaurer","followers_url":"https://api.github.com/users/normanmaurer/followers","following_url":"https://api.github.com/users/normanmaurer/following{/other_user}","gists_url":"https://api.github.com/users/normanmaurer/gists{/gist_id}","starred_url":"https://api.github.com/users/normanmaurer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/normanmaurer/subscriptions","organizations_url":"https://api.github.com/users/normanmaurer/orgs","repos_url":"https://api.github.com/users/normanmaurer/repos","events_url":"https://api.github.com/users/normanmaurer/events{/privacy}","received_events_url":"https://api.github.com/users/normanmaurer/received_events","type":"User","site_admin":false},"open_issues":11,"closed_issues":8,"state":"open","created_at":"2016-02-20T16:10:57Z","updated_at":"2016-03-07T02:19:28Z","due_on":null,"closed_at":null},"comments":7,"created_at":"2015-12-19T23:36:15Z","updated_at":"2016-03-07T02:25:54Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/netty/netty/pulls/4607","html_url":"https://github.com/netty/netty/pull/4607","diff_url":"https://github.com/netty/netty/pull/4607.diff","patch_url":"https://github.com/netty/netty/pull/4607.patch"},"body":"Motivation:\r\nEach compression codec is presented as its own class. It's difficult to switch one compression codec to another without significant code modifications.\r\n\r\nModifications:\r\nAdded classes:\r\n* `CompressionCodecFactory` - factory for all compression codecs\r\n* `CompressionDecoder` - abstract class, parent for all compression decoders\r\n* `CompressionEncoder` - abstract class, parent for all compression encoders\r\n* `CompressionFormat` - enum with all available compression formats\r\nExtend all compression encoders and decoders to use new abstract classes.\r\n\r\nResult:\r\nGeneral API for every compression codecs."},"comment":{"url":"https://api.github.com/repos/netty/netty/issues/comments/193059970","html_url":"https://github.com/netty/netty/pull/4607#issuecomment-193059970","issue_url":"https://api.github.com/repos/netty/netty/issues/4607","id":193059970,"user":{"login":"trustin","id":173918,"avatar_url":"https://avatars.githubusercontent.com/u/173918?v=3","gravatar_id":"","url":"https://api.github.com/users/trustin","html_url":"https://github.com/trustin","followers_url":"https://api.github.com/users/trustin/followers","following_url":"https://api.github.com/users/trustin/following{/other_user}","gists_url":"https://api.github.com/users/trustin/gists{/gist_id}","starred_url":"https://api.github.com/users/trustin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/trustin/subscriptions","organizations_url":"https://api.github.com/users/trustin/orgs","repos_url":"https://api.github.com/users/trustin/repos","events_url":"https://api.github.com/users/trustin/events{/privacy}","received_events_url":"https://api.github.com/users/trustin/received_events","type":"User","site_admin":false},"created_at":"2016-03-07T02:25:54Z","updated_at":"2016-03-07T02:25:54Z","body":"@idelpivnitskiy Gentle ping :-)"}}