public static void setCodecInfoReference(Element element, ParserContext parserContext,
			BeanDefinitionBuilder builder, String attributeName) {
		BeanDefinitionBuilder codecBuilder =
				BeanDefinitionBuilder.genericBeanDefinition(MethodInvokingFactoryBean.class);

		codecBuilder.addPropertyValue("targetClass", Codecs.class);
		codecBuilder.addPropertyValue("targetMethod", "getCodecInfo");
		codecBuilder.addPropertyValue("arguments", new String[] { element.getAttribute(attributeName) });

		AbstractBeanDefinition beanDef = codecBuilder.getBeanDefinition();
		String beanName = BeanDefinitionReaderUtils.generateBeanName(beanDef, parserContext.getRegistry());
		parserContext.registerBeanComponent(new BeanComponentDefinition(beanDef, beanName));
		builder.addPropertyReference(Conventions.attributeNameToPropertyName(attributeName), beanName);
	}
Sets the codec info reference. Creates new {@code CodecInfo} bean via {@code MethodInvokingFactoryBean} by
calling static {@code Codecs#getCodecInfo(String)} order to play nice with property placeholder and expressions.

@param element the element
@param parserContext the parser context
@param builder the builder
@param attributeName the attribute name
spring-xd-hadoop/src/main/java/org/springframework/xd/integration/hadoop/config/IntegrationHadoopNamespaceUtils.java