Skip to content

Commit

Permalink
Merge remote-tracking branch 'amb26/FLUID-5091'
Browse files Browse the repository at this point in the history
* amb26/FLUID-5091:
  FLUID-5091: Quick fix for FLUID-5091, using new utility "destroyValue". Pending more sound solution for FLUID-5028
  FLUID-5091: Added a test case for components block merging failure with dynamic contributed grades.
  • Loading branch information
yzen committed Jul 17, 2013
2 parents ccda6ba + 74f3af0 commit 6988561
Show file tree
Hide file tree
Showing 3 changed files with 417 additions and 378 deletions.
5 changes: 5 additions & 0 deletions src/webapp/framework/core/js/Fluid.js
Expand Up @@ -1787,6 +1787,11 @@ var fluid = fluid || fluid_1_5;
var mergeOptions = fluid.makeMergeOptions(sharedMergePolicy, sources, baseMergeOptions);
mergeOptions.mergeBlocks = mergeBlocks;
mergeOptions.updateBlocks = updateBlocks;
mergeOptions.destroyValue = function (path) { // This method is a temporary hack to assist FLUID-5091
for (var i = 0; i < mergeBlocks.length; ++ i) {
fluid.model.applyChangeRequest(mergeBlocks[i].target, {type: "DELETE", path: path});
}
};

// Decode the now available mergePolicy
var mergePolicy = fluid.driveStrategy(options, "mergePolicy", mergeOptions.strategy);
Expand Down
3 changes: 3 additions & 0 deletions src/webapp/framework/core/js/FluidIoC.js
Expand Up @@ -422,6 +422,9 @@ var fluid_1_5 = fluid_1_5 || {};
gradeNames.length = 0; // acquire derivatives of dynamic grades (FLUID-5054)
gradeNames.push.apply(gradeNames, newDefaults.gradeNames);
fluid.cacheShadowGrades(that, shadow);
// This cheap strategy patches FLUID-5091 for now - some more sophisticated activity will take place
// at this site when we have a full fix for FLUID-5028
shadow.mergeOptions.destroyValue("components");

var defaultsBlock = fluid.findMergeBlocks(shadow.mergeOptions.mergeBlocks, "defaults")[0];
defaultsBlock.source = newDefaults;
Expand Down

0 comments on commit 6988561

Please sign in to comment.