{"action":"created","issue":{"url":"https://api.github.com/repos/apache/brooklyn-server/issues/340","repository_url":"https://api.github.com/repos/apache/brooklyn-server","labels_url":"https://api.github.com/repos/apache/brooklyn-server/issues/340/labels{/name}","comments_url":"https://api.github.com/repos/apache/brooklyn-server/issues/340/comments","events_url":"https://api.github.com/repos/apache/brooklyn-server/issues/340/events","html_url":"https://github.com/apache/brooklyn-server/pull/340","id":178378891,"number":340,"title":"ConfigMap refactor, respecting inheritance","user":{"login":"ahgittin","id":496540,"avatar_url":"https://avatars.githubusercontent.com/u/496540?v=3","gravatar_id":"","url":"https://api.github.com/users/ahgittin","html_url":"https://github.com/ahgittin","followers_url":"https://api.github.com/users/ahgittin/followers","following_url":"https://api.github.com/users/ahgittin/following{/other_user}","gists_url":"https://api.github.com/users/ahgittin/gists{/gist_id}","starred_url":"https://api.github.com/users/ahgittin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahgittin/subscriptions","organizations_url":"https://api.github.com/users/ahgittin/orgs","repos_url":"https://api.github.com/users/ahgittin/repos","events_url":"https://api.github.com/users/ahgittin/events{/privacy}","received_events_url":"https://api.github.com/users/ahgittin/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2016-09-21T15:19:48Z","updated_at":"2016-09-22T17:25:22Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/apache/brooklyn-server/pulls/340","html_url":"https://github.com/apache/brooklyn-server/pull/340","diff_url":"https://github.com/apache/brooklyn-server/pull/340.diff","patch_url":"https://github.com/apache/brooklyn-server/pull/340.patch"},"body":"As discussed on #281, there were some severe limitations in the way we handled config and inheritance.  This addresses many of those, and others, including:\r\n\r\n* A distinction between `NOT_REINHERITED` and `NEVER_INHERITED`\r\n* Lift evaluation of inheritance so callers don't repeat code\r\n* Bringing `Location` config in line with `Entity` and `EntityAdjunct`\r\n* Clarification of what is returned by \"get all\" methods in an inherited, merging, resolving, coercing world\r\n* REST API and other methods no longer show dis-inherited config\r\n* DSL components are resolved against the ancestor who declares the value\r\n* API supports accessing which ancestor declares a value, for contexts which need e.g. to resolve a URL in the bundle context of a catalog item\r\n\r\nThis fixes some broken tests and removes a whole lot of TODO comments (whilst only adding a few!).  It does come at a cost of complexity (especially in the evaluation of inherited config; however since *all* tests pass it doesn't need super-close study at this point, I think).  I'm convinced it's necessary complexity unless we move away from this style of inheritance (which in time we might well be able to do!).\r\n\r\nThere are a few areas where backwards compatibility is impacted which will need to go into the release notes:\r\n\r\n* Config is now resolved against the ancestor where it is defined, e.g. attributeWhenReady;\r\n    TODO do we need a way to specify that config should be resolved against the resolver?\r\n* `ConfigMap.submap` is no longer supported for entity config; findKeys has been introduced, and the method is available on the main sub-interfaces where it was used\r\n* Location config is treated like Entities and Adjuncts; it respects inheritance\r\n    * as a consequence of this, some persisted usage information is no longer available\r\n\r\n(The biggest of these is Location config changes now needing to go through the right API; you can no longer just edit the bag.  I think I've caught most of these but test with care!)"},"comment":{"url":"https://api.github.com/repos/apache/brooklyn-server/issues/comments/248970390","html_url":"https://github.com/apache/brooklyn-server/pull/340#issuecomment-248970390","issue_url":"https://api.github.com/repos/apache/brooklyn-server/issues/340","id":248970390,"user":{"login":"ahgittin","id":496540,"avatar_url":"https://avatars.githubusercontent.com/u/496540?v=3","gravatar_id":"","url":"https://api.github.com/users/ahgittin","html_url":"https://github.com/ahgittin","followers_url":"https://api.github.com/users/ahgittin/followers","following_url":"https://api.github.com/users/ahgittin/following{/other_user}","gists_url":"https://api.github.com/users/ahgittin/gists{/gist_id}","starred_url":"https://api.github.com/users/ahgittin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahgittin/subscriptions","organizations_url":"https://api.github.com/users/ahgittin/orgs","repos_url":"https://api.github.com/users/ahgittin/repos","events_url":"https://api.github.com/users/ahgittin/events{/privacy}","received_events_url":"https://api.github.com/users/ahgittin/received_events","type":"User","site_admin":false},"created_at":"2016-09-22T17:25:22Z","updated_at":"2016-09-22T17:25:22Z","body":"Big thank you @aledsage !  I'll fix that last thing you spotted and merged.\r\n\r\nI expect there are untested corner cases -- there are so many -- but things are far better tested and implemented than before, at least!"}}
{"actor":{"display_login":"ahgittin"}}