ComposerExt.doBeforeCompose allows to change the properties of a ComponentInfo before returning. However, it might affect other executions referencing the same page. Thus, it is better to make a copy and then modify.
However, clone() is not a good solution since it is too costly to clone all descendants.
It is better to have another method called duplicate to copy all contents and allow the caller to modify. Unlike clone, the parent-children relation cannot be changed thereafter.
Logged In: YES
user_id=91099
Originator: YES
Ready since 8/15