{"action":"created","issue":{"url":"https://api.github.com/repos/dropwizard/dropwizard/issues/1394","labels_url":"https://api.github.com/repos/dropwizard/dropwizard/issues/1394/labels{/name}","comments_url":"https://api.github.com/repos/dropwizard/dropwizard/issues/1394/comments","events_url":"https://api.github.com/repos/dropwizard/dropwizard/issues/1394/events","html_url":"https://github.com/dropwizard/dropwizard/pull/1394","id":123753306,"number":1394,"title":"Add ability to have config inheritance and property resolvers in configs","user":{"login":"brentryan","id":1102801,"avatar_url":"https://avatars.githubusercontent.com/u/1102801?v=3","gravatar_id":"","url":"https://api.github.com/users/brentryan","html_url":"https://github.com/brentryan","followers_url":"https://api.github.com/users/brentryan/followers","following_url":"https://api.github.com/users/brentryan/following{/other_user}","gists_url":"https://api.github.com/users/brentryan/gists{/gist_id}","starred_url":"https://api.github.com/users/brentryan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brentryan/subscriptions","organizations_url":"https://api.github.com/users/brentryan/orgs","repos_url":"https://api.github.com/users/brentryan/repos","events_url":"https://api.github.com/users/brentryan/events{/privacy}","received_events_url":"https://api.github.com/users/brentryan/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":9,"created_at":"2015-12-24T03:21:41Z","updated_at":"2015-12-26T19:21:03Z","closed_at":"2015-12-26T19:21:03Z","pull_request":{"url":"https://api.github.com/repos/dropwizard/dropwizard/pulls/1394","html_url":"https://github.com/dropwizard/dropwizard/pull/1394","diff_url":"https://github.com/dropwizard/dropwizard/pull/1394.diff","patch_url":"https://github.com/dropwizard/dropwizard/pull/1394.patch"},"body":"This PR provides a way for users to use inheritance in their configuration files.  I've seen several developers asking for this within dropwizard and we've been using this for a long time at Cvent to reduce as much boiler plate as we can from our configurations when each service has to support dev,alpha,staging,load, and production environment configs.\r\n\r\nTo use this for your service you'd initialize your service like this:\r\n\r\n        MergedConfigurationFactoryFactory<T> cff\r\n                = new MergedConfigurationFactoryFactory<>();\r\n        MultiConfigurationSourceProvider sp = new MultiConfigurationSourceProvider();\r\n\r\n        bootstrap.setConfigurationFactoryFactory(cff);\r\n        bootstrap.setConfigurationSourceProvider(sp);\r\n        bootstrap.addCommand(new DisplayMergedConfigCommand<>(this));\r\n\r\nYour yaml config files would have something like this in them:\r\n\r\n        parentConfigurationFile: configs/base.yaml\r\n\r\nThis allows all of your configuration files to reference a parent configuration where most \"common\" settings are placed.\r\n\r\nWith this PR you also have the ability to do replacements within the config using ${property} syntax.  This is useful so that if you have a configuration property like \"environmentName\" then you can reference this property anywhere else in your configuration without having to specify the same thing multiple times."},"comment":{"url":"https://api.github.com/repos/dropwizard/dropwizard/issues/comments/167355503","html_url":"https://github.com/dropwizard/dropwizard/pull/1394#issuecomment-167355503","issue_url":"https://api.github.com/repos/dropwizard/dropwizard/issues/1394","id":167355503,"user":{"login":"brentryan","id":1102801,"avatar_url":"https://avatars.githubusercontent.com/u/1102801?v=3","gravatar_id":"","url":"https://api.github.com/users/brentryan","html_url":"https://github.com/brentryan","followers_url":"https://api.github.com/users/brentryan/followers","following_url":"https://api.github.com/users/brentryan/following{/other_user}","gists_url":"https://api.github.com/users/brentryan/gists{/gist_id}","starred_url":"https://api.github.com/users/brentryan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brentryan/subscriptions","organizations_url":"https://api.github.com/users/brentryan/orgs","repos_url":"https://api.github.com/users/brentryan/repos","events_url":"https://api.github.com/users/brentryan/events{/privacy}","received_events_url":"https://api.github.com/users/brentryan/received_events","type":"User","site_admin":false},"created_at":"2015-12-26T19:21:03Z","updated_at":"2015-12-26T19:21:03Z","body":"Closing PR as I'll move over to a module."}}