The problem is, if I have...

    <chain id="foo" ...>
        <transformer id="bar" />
    </chain>

    <chain id="baz" ...>
        <transformer id="bar" />
    </chain>

both `bar`s get the same alias `bar.handler`. Spring doesn't complain but it is indeterminate which bar you will get if you use `bar.handler`.

So, either the alias has to be `foo$child.bar.handler`, or the alias needs to be removed altogether.

I can live with the children having a bean name `foo$child.bar.handler` (instead of `foo$child.bar`) to make it consistent with a free-standing endpoint handler. But we can't live with two beans having the same alias.