{"action":"created","issue":{"url":"https://api.github.com/repos/apache/bookkeeper/issues/1217","repository_url":"https://api.github.com/repos/apache/bookkeeper","labels_url":"https://api.github.com/repos/apache/bookkeeper/issues/1217/labels{/name}","comments_url":"https://api.github.com/repos/apache/bookkeeper/issues/1217/comments","events_url":"https://api.github.com/repos/apache/bookkeeper/issues/1217/events","html_url":"https://github.com/apache/bookkeeper/pull/1217","id":300966434,"number":1217,"title":" Shade bookkeeper in distributedlog-core-shaded and allow using shaded bookkeeper client to resolve ledger manager factory class","user":{"login":"sijie","id":1217863,"avatar_url":"https://avatars2.githubusercontent.com/u/1217863?v=4","gravatar_id":"","url":"https://api.github.com/users/sijie","html_url":"https://github.com/sijie","followers_url":"https://api.github.com/users/sijie/followers","following_url":"https://api.github.com/users/sijie/following{/other_user}","gists_url":"https://api.github.com/users/sijie/gists{/gist_id}","starred_url":"https://api.github.com/users/sijie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sijie/subscriptions","organizations_url":"https://api.github.com/users/sijie/orgs","repos_url":"https://api.github.com/users/sijie/repos","events_url":"https://api.github.com/users/sijie/events{/privacy}","received_events_url":"https://api.github.com/users/sijie/received_events","type":"User","site_admin":false},"labels":[{"id":822862030,"url":"https://api.github.com/repos/apache/bookkeeper/labels/area/dlog","name":"area/dlog","color":"f9d0c4","default":false},{"id":654124935,"url":"https://api.github.com/repos/apache/bookkeeper/labels/area/metadata","name":"area/metadata","color":"f9d0c4","default":false},{"id":740113030,"url":"https://api.github.com/repos/apache/bookkeeper/labels/release/4.7.0","name":"release/4.7.0","color":"1d76db","default":false},{"id":769552700,"url":"https://api.github.com/repos/apache/bookkeeper/labels/type/improvement","name":"type/improvement","color":"fbca04","default":false}],"state":"open","locked":false,"assignee":{"login":"sijie","id":1217863,"avatar_url":"https://avatars2.githubusercontent.com/u/1217863?v=4","gravatar_id":"","url":"https://api.github.com/users/sijie","html_url":"https://github.com/sijie","followers_url":"https://api.github.com/users/sijie/followers","following_url":"https://api.github.com/users/sijie/following{/other_user}","gists_url":"https://api.github.com/users/sijie/gists{/gist_id}","starred_url":"https://api.github.com/users/sijie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sijie/subscriptions","organizations_url":"https://api.github.com/users/sijie/orgs","repos_url":"https://api.github.com/users/sijie/repos","events_url":"https://api.github.com/users/sijie/events{/privacy}","received_events_url":"https://api.github.com/users/sijie/received_events","type":"User","site_admin":false},"assignees":[{"login":"sijie","id":1217863,"avatar_url":"https://avatars2.githubusercontent.com/u/1217863?v=4","gravatar_id":"","url":"https://api.github.com/users/sijie","html_url":"https://github.com/sijie","followers_url":"https://api.github.com/users/sijie/followers","following_url":"https://api.github.com/users/sijie/following{/other_user}","gists_url":"https://api.github.com/users/sijie/gists{/gist_id}","starred_url":"https://api.github.com/users/sijie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sijie/subscriptions","organizations_url":"https://api.github.com/users/sijie/orgs","repos_url":"https://api.github.com/users/sijie/repos","events_url":"https://api.github.com/users/sijie/events{/privacy}","received_events_url":"https://api.github.com/users/sijie/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/apache/bookkeeper/milestones/3","html_url":"https://github.com/apache/bookkeeper/milestone/3","labels_url":"https://api.github.com/repos/apache/bookkeeper/milestones/3/labels","id":2887234,"number":3,"title":"4.7.0","description":"Release 4.7.0","creator":{"login":"jiazhai","id":6348208,"avatar_url":"https://avatars2.githubusercontent.com/u/6348208?v=4","gravatar_id":"","url":"https://api.github.com/users/jiazhai","html_url":"https://github.com/jiazhai","followers_url":"https://api.github.com/users/jiazhai/followers","following_url":"https://api.github.com/users/jiazhai/following{/other_user}","gists_url":"https://api.github.com/users/jiazhai/gists{/gist_id}","starred_url":"https://api.github.com/users/jiazhai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jiazhai/subscriptions","organizations_url":"https://api.github.com/users/jiazhai/orgs","repos_url":"https://api.github.com/users/jiazhai/repos","events_url":"https://api.github.com/users/jiazhai/events{/privacy}","received_events_url":"https://api.github.com/users/jiazhai/received_events","type":"User","site_admin":false},"open_issues":26,"closed_issues":343,"state":"open","created_at":"2017-11-04T00:04:40Z","updated_at":"2018-02-28T10:17:13Z","due_on":"2018-03-01T08:00:00Z","closed_at":null},"comments":1,"created_at":"2018-02-28T10:17:13Z","updated_at":"2018-02-28T11:40:58Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/apache/bookkeeper/pulls/1217","html_url":"https://github.com/apache/bookkeeper/pull/1217","diff_url":"https://github.com/apache/bookkeeper/pull/1217.diff","patch_url":"https://github.com/apache/bookkeeper/pull/1217.patch"},"body":"Descriptions of the changes in this PR:\r\n\r\n*Motivation*\r\n\r\n1. when `distributedlog-core-shaded` is co-used with other bookkeeper jars, it would cause class conflicts because `distributedlog-core-shaded` shades\r\nmost of its dependencies except bookkeeper. so it is better to also shade bookkeeper to avoid such conflicts.\r\n\r\n2. if we shade bookkeeper, it would cause a problem on resolving ledger manager factory class stored on layout metadata.\r\n\r\n```\r\njava.io.IOException: Failed to instantiate ledger manager factory org.apache.bookkeeper.meta.HierarchicalLedgerManagerFactory\r\n\tat dlshade.org.apache.bookkeeper.meta.AbstractZkLedgerManagerFactory.attemptToResolveShadedLedgerManagerFactory(AbstractZkLedgerManagerFactory.java:256) ~[distributedlog-core-shaded-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]\r\n\tat dlshade.org.apache.bookkeeper.meta.AbstractZkLedgerManagerFactory.newLedgerManagerFactory(AbstractZkLedgerManagerFactory.java:203) ~[distributedlog-core-shaded-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]\r\n```\r\n\r\n*Solution*\r\n\r\n- shade bookkeeper dependencies in `distributedlog-core-shaded`\r\n- add flags to allow using shaded bookkeeper jar to resolve ledger manager factory\r\n\r\n\r\n> ---\r\n> Be sure to do all of the following to help us incorporate your contribution\r\n> quickly and easily:\r\n>\r\n> If this PR is a BookKeeper Proposal (BP):\r\n>\r\n> - [ ] Make sure the PR title is formatted like:\r\n>     `<BP-#>: Description of bookkeeper proposal`\r\n>     `e.g. BP-1: 64 bits ledger is support`\r\n> - [ ] Attach the master issue link in the description of this PR.\r\n> - [ ] Attach the google doc link if the BP is written in Google Doc.\r\n>\r\n> Otherwise:\r\n> \r\n> - [ ] Make sure the PR title is formatted like:\r\n>     `<Issue #>: Description of pull request`\r\n>     `e.g. Issue 123: Description ...`\r\n> - [ ] Make sure tests pass via `mvn clean apache-rat:check install spotbugs:check`.\r\n> - [ ] Replace `<Issue #>` in the title with the actual Issue number.\r\n> \r\n> ---\r\n"},"comment":{"url":"https://api.github.com/repos/apache/bookkeeper/issues/comments/369213784","html_url":"https://github.com/apache/bookkeeper/pull/1217#issuecomment-369213784","issue_url":"https://api.github.com/repos/apache/bookkeeper/issues/1217","id":369213784,"user":{"login":"ivankelly","id":54955,"avatar_url":"https://avatars3.githubusercontent.com/u/54955?v=4","gravatar_id":"","url":"https://api.github.com/users/ivankelly","html_url":"https://github.com/ivankelly","followers_url":"https://api.github.com/users/ivankelly/followers","following_url":"https://api.github.com/users/ivankelly/following{/other_user}","gists_url":"https://api.github.com/users/ivankelly/gists{/gist_id}","starred_url":"https://api.github.com/users/ivankelly/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ivankelly/subscriptions","organizations_url":"https://api.github.com/users/ivankelly/orgs","repos_url":"https://api.github.com/users/ivankelly/repos","events_url":"https://api.github.com/users/ivankelly/events{/privacy}","received_events_url":"https://api.github.com/users/ivankelly/received_events","type":"User","site_admin":false},"created_at":"2018-02-28T11:40:58Z","updated_at":"2018-02-28T11:40:58Z","author_association":"CONTRIBUTOR","body":"I think this breaks a unit test."}}
{"actor":{"display_login":"ivankelly"}}