class JobLaunchingGatewayParser extends AbstractConsumerEndpointParser {

	private static final Log logger = LogFactory.getLog(JobLaunchingGatewayParser.class);

	@Override
	protected String getInputChannelAttributeName() {
		return "request-channel";
	}

	@Override
	protected BeanDefinitionBuilder parseHandler(Element element, ParserContext parserContext) {<FILL_FUNCTION_BODY>}

}


		final BeanDefinitionBuilder jobLaunchingGatewayBuilder = BeanDefinitionBuilder
			.genericBeanDefinition(JobLaunchingGateway.class);

		final String jobLauncher = element.getAttribute("job-launcher");

		if (StringUtils.hasText(jobLauncher)) {
			jobLaunchingGatewayBuilder.addConstructorArgReference(jobLauncher);
		}
		else {
			if (logger.isDebugEnabled()) {
				logger.debug("No jobLauncher specified, using default 'jobLauncher' reference instead.");
			}
			jobLaunchingGatewayBuilder.addConstructorArgReference("jobLauncher");
		}

		IntegrationNamespaceUtils.setValueIfAttributeDefined(jobLaunchingGatewayBuilder, element, "reply-timeout",
				"sendTimeout");

		final String replyChannel = element.getAttribute("reply-channel");

		if (StringUtils.hasText(replyChannel)) {
			jobLaunchingGatewayBuilder.addPropertyReference("outputChannel", replyChannel);
		}

		return jobLaunchingGatewayBuilder;

	
<methods>public void <init>() <variables>protected static final java.lang.String EXPRESSION_ATTRIBUTE,protected static final java.lang.String METHOD_ATTRIBUTE,protected static final java.lang.String REF_ATTRIBUTE