Includes logic to determine MessageChannel:
if 'channel' attribute is defined - uses its value as 'channelName';
if 'id' attribute is defined - creates DirectChannel at runtime and uses id's value as 'channelName';
if current component is defined as nested element inside any other components e.g. <chain>
'id' and 'channel' attributes will be ignored and this component will not be parsed as
AbstractEndpoint.