> Hi, > Properties should not be merged, as that will produce undesirable side > effects, however some things need to be merged. > > Having attempted to write documentation I found it easiest to describe in > terms of json documents. > Using the examples in > https://gist.github.com/ieb/460504e79c861cb980f4f0154210a869 > > given 2 configs from different locations > > Location A > > { > "socialmedia" : { > "youtube" : { > "enabled" : false, > "url" : "https://youtube.com" > }, > "facebook" : { > "enabled" : false, > "apiusage" : false, > "url" : "https://youtube.com" > }, > > Location B > > { > "socialmedia" : { > "facebook" : { > "enabled" : true, > "url" : "https://facebook.com" > } > } > } > > > The result of A then B should be > > { > "socialmedia" : { > "youtube" : { > "enabled" : false, > "url" : "https://youtube.com" > }, > "facebook" : { > "enabled" : true, > "url" : "https://facebook.com" > } > } > } > > > ie Objects are merged but properties are not. socialmedia.facebook from A > does not add @apiusage to the result, as socialmedia.facebook form B > overwrites socialmedia.facebook from A. > > That will allow a deployer to completely replace a configuration "object" > without having to get their head around more complex inheritance rules. > This does assume that configurations are collected together into "objects". > I think its is important to keep it simple. > If this isnt simple enough then it needs some more thought. >
Yes, I think we agree on this, and that's how my implementation currently works). So for your above example if we have "A then B" and you get the collection for "socialmedia" you get "youtube" and "facebook" with the properties you list above. This is merging on a resource collection level and yes, we must do that. My post here was more about merging properties, sorry that I didn't make this clear :) But it's great that we have a common understand now Thanks Carsten -- Carsten Ziegeler Adobe Research Switzerland [email protected]
