Source:
protected BeanDefinitionBuilder parseHandler(Element element, ParserContext parserContext) { BeanDefinition templateDefintion = FileParserUtils.parseRemoteFileTemplate(element, false); BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(getGatewayClassName()); builder.addConstructorArgValue(templateDefintion); builder.addConstructorArgValue(element.getAttribute("command")); builder.addConstructorArgValue(element.getAttribute(EXPRESSION_ATTRIBUTE)); IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "command-options", "options"); IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "temporary-file-suffix"); IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "reply-timeout", "sendTimeout"); IntegrationNamespaceUtils.setReferenceIfAttributeDefined(builder, element, "reply-channel", "outputChannel"); this.configureFilter(builder, element, parserContext, "filter", "filename", "filter"); this.configureFilter(builder, element, parserContext, "mput-filter", "mput", "mputFilter"); IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "remote-file-separator"); BeanDefinition localDirExpressionDef = IntegrationNamespaceUtils .createExpressionDefinitionFromValueOrExpression("local-directory", "local-directory-expression", parserContext, element, false); builder.addPropertyValue("localDirectoryExpression", localDirExpressionDef); IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "auto-create-local-directory"); IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "order"); IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "rename-expression"); IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "requires-reply"); String localFileGeneratorExpression = element.getAttribute("local-filename-generator-expression"); if (StringUtils.hasText(localFileGeneratorExpression)) { BeanDefinitionBuilder localFileGeneratorExpressionBuilder = BeanDefinitionBuilder.genericBeanDefinition(ExpressionFactoryBean.class); localFileGeneratorExpressionBuilder.addConstructorArgValue(localFileGeneratorExpression); builder.addPropertyValue("localFilenameGeneratorExpression", localFileGeneratorExpressionBuilder.getBeanDefinition()); } return builder; }

Target:
protected BeanDefinitionBuilder parseHandler(Element element, ParserContext parserContext) { BeanDefinition templateDefinition = FileParserUtils.parseRemoteFileTemplate(element, parserContext, false); BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(getGatewayClassName()); builder.addConstructorArgValue(templateDefinition); builder.addConstructorArgValue(element.getAttribute("command")); builder.addConstructorArgValue(element.getAttribute(EXPRESSION_ATTRIBUTE)); IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "command-options", "options"); IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "reply-timeout", "sendTimeout"); IntegrationNamespaceUtils.setReferenceIfAttributeDefined(builder, element, "reply-channel", "outputChannel"); this.configureFilter(builder, element, parserContext, "filter", "filename", "filter"); this.configureFilter(builder, element, parserContext, "mput-filter", "mput", "mputFilter"); BeanDefinition localDirExpressionDef = IntegrationNamespaceUtils .createExpressionDefinitionFromValueOrExpression("local-directory", "local-directory-expression", parserContext, element, false); builder.addPropertyValue("localDirectoryExpression", localDirExpressionDef); IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "auto-create-local-directory"); IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "order"); IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "rename-expression"); IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "requires-reply"); String localFileGeneratorExpression = element.getAttribute("local-filename-generator-expression"); if (StringUtils.hasText(localFileGeneratorExpression)) { BeanDefinitionBuilder localFileGeneratorExpressionBuilder = BeanDefinitionBuilder.genericBeanDefinition(ExpressionFactoryBean.class); localFileGeneratorExpressionBuilder.addConstructorArgValue(localFileGeneratorExpression); builder.addPropertyValue("localFilenameGeneratorExpression", localFileGeneratorExpressionBuilder.getBeanDefinition()); } return builder; }