{"action":"created","issue":{"url":"https://api.github.com/repos/netty/netty/issues/3696","labels_url":"https://api.github.com/repos/netty/netty/issues/3696/labels{/name}","comments_url":"https://api.github.com/repos/netty/netty/issues/3696/comments","events_url":"https://api.github.com/repos/netty/netty/issues/3696/events","html_url":"https://github.com/netty/netty/pull/3696","id":71109689,"number":3696,"title":"[#3218] Add ChannelPool abstraction and implementations","user":{"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},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":9,"created_at":"2015-04-26T19:32:04Z","updated_at":"2015-04-28T06:50:31Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/netty/netty/pulls/3696","html_url":"https://github.com/netty/netty/pull/3696","diff_url":"https://github.com/netty/netty/pull/3696.diff","patch_url":"https://github.com/netty/netty/pull/3696.patch"},"body":"Motivation:\r\n\r\nMany projects need some kind a Channel/Connection pool implementation. While the protocols are different many things can be shared, so we should provide a generic API and implementation.\r\n\r\nModifications:\r\n\r\nAdd ChannelPool API and implementations.\r\n\r\nResult:\r\n\r\nReusable / Generic pool implementation that users can use."},"comment":{"url":"https://api.github.com/repos/netty/netty/issues/comments/96948573","html_url":"https://github.com/netty/netty/pull/3696#issuecomment-96948573","issue_url":"https://api.github.com/repos/netty/netty/issues/3696","id":96948573,"user":{"login":"Scottmitch","id":7562868,"avatar_url":"https://avatars.githubusercontent.com/u/7562868?v=3","gravatar_id":"","url":"https://api.github.com/users/Scottmitch","html_url":"https://github.com/Scottmitch","followers_url":"https://api.github.com/users/Scottmitch/followers","following_url":"https://api.github.com/users/Scottmitch/following{/other_user}","gists_url":"https://api.github.com/users/Scottmitch/gists{/gist_id}","starred_url":"https://api.github.com/users/Scottmitch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Scottmitch/subscriptions","organizations_url":"https://api.github.com/users/Scottmitch/orgs","repos_url":"https://api.github.com/users/Scottmitch/repos","events_url":"https://api.github.com/users/Scottmitch/events{/privacy}","received_events_url":"https://api.github.com/users/Scottmitch/received_events","type":"User","site_admin":false},"created_at":"2015-04-28T06:50:31Z","updated_at":"2015-04-28T06:50:31Z","body":"@normanmaurer - I would like to explore the first option more.  Keeping the core simple and not requiring an interface that extends `Channel`.  Seems like this introduces more complexity and opportunities for things to go wrong, and also may be limiting from a practical usage standpoint as @trustin pointed out.  I think it would be good to explore keeping the core \"simple\", and providing reasonable extension points (factories, abstract methods, etc...) to let data external to the core which may be useful for users of the pool (i.e. the pool the channel was leased from, etc...).  I think you have identified a good practical use case (getting the pool which the channel was leased from) that we are sure we can support through extensions."}}