Package org.springframework.batch.integration.launch

# Class JobLaunchingGateway

java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.handler.MessageHandlerSupport
org.springframework.integration.handler.AbstractMessageHandler
org.springframework.integration.handler.AbstractMessageProducingHandler
org.springframework.integration.handler.AbstractReplyProducingMessageHandler
org.springframework.batch.integration.launch.JobLaunchingGateway

All Implemented Interfaces:
  `org.reactivestreams.Subscriber<org.springframework.messaging.Message<?>>`, `org.springframework.beans.factory.Aware`, `org.springframework.beans.factory.BeanClassLoaderAware`, `org.springframework.beans.factory.BeanFactoryAware`, `org.springframework.beans.factory.BeanNameAware`, `org.springframework.beans.factory.DisposableBean`, `org.springframework.beans.factory.InitializingBean`, `org.springframework.context.ApplicationContextAware`, `org.springframework.core.Ordered`, `org.springframework.integration.context.ExpressionCapable`, `org.springframework.integration.context.Orderable`, `org.springframework.integration.core.MessageProducer`, `org.springframework.integration.handler.HeaderPropagationAware`, `org.springframework.integration.IntegrationPattern`, `org.springframework.integration.support.context.NamedComponent`, `org.springframework.integration.support.management.IntegrationManagement`, `org.springframework.integration.support.management.TrackableComponent`, `org.springframework.messaging.MessageHandler`, `reactor.core.CoreSubscriber<org.springframework.messaging.Message<?>>`

public class JobLaunchingGateway extends org.springframework.integration.handler.AbstractReplyProducingMessageHandler
The `JobLaunchingGateway` is used to launch Batch Jobs. Internally it delegates to a `JobLaunchingMessageHandler`.

Since:
  1.3
Author:
  Gunnar Hillert

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class org.springframework.integration.handler.AbstractReplyProducingMessageHandler

  `org.springframework.integration.handler.AbstractReplyProducingMessageHandler.RequestHandler`

  ## Nested classes/interfaces inherited from interface org.springframework.integration.support.management.IntegrationManagement

  `org.springframework.integration.support.management.IntegrationManagement.ManagementOverrides`

- ## Field Summary

  ### Fields inherited from class org.springframework.integration.handler.AbstractMessageProducingHandler

  `messagingTemplate`

  ### Fields inherited from class org.springframework.integration.context.IntegrationObjectSupport

  `EXPRESSION_PARSER, logger`

  ### Fields inherited from interface org.springframework.integration.support.management.IntegrationManagement

  `METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAME`

  ### Fields inherited from interface org.springframework.core.Ordered

  `HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `JobLaunchingGateway(JobLauncher jobLauncher)`
  Constructor taking a `JobLauncher` as parameter.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected Object`
  `handleRequestMessage(org.springframework.messaging.Message<?> requestMessage)`
  Launches a Batch Job using the provided request `Message`.

  ### Methods inherited from class org.springframework.integration.handler.AbstractReplyProducingMessageHandler

  `doInit, doInvokeAdvisedRequestHandler, getBeanClassLoader, getIntegrationPatternType, getRequiresReply, handleMessageInternal, hasAdviceChain, onInit, setAdviceChain, setBeanClassLoader, setRequiresReply`

  ### Methods inherited from class org.springframework.integration.handler.AbstractMessageProducingHandler

  `addNotPropagatedHeaders, createOutputMessage, getNotPropagatedHeaders, getOutputChannel, isAsync, messageBuilderForReply, produceOutput, resolveErrorChannel, sendErrorMessage, sendOutput, sendOutputs, setAsync, setNotPropagatedHeaders, setOutputChannel, setOutputChannelName, setSendTimeout, shouldCopyRequestHeaders, shouldSplitOutput, updateNotPropagatedHeaders`

  ### Methods inherited from class org.springframework.integration.handler.AbstractMessageHandler

  `handleMessage, onComplete, onError, onNext, onSubscribe`

  ### Methods inherited from class org.springframework.integration.handler.MessageHandlerSupport

  `buildSendTimer, destroy, getComponentType, getManagedName, getManagedType, getMetricsCaptor, getOrder, getOverrides, isLoggingEnabled, registerMetricsCaptor, sendTimer, setLoggingEnabled, setManagedName, setManagedType, setOrder, setShouldTrack, shouldTrack`

  ### Methods inherited from class org.springframework.integration.context.IntegrationObjectSupport

  `afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentName, getConversionService, getExpression, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toString`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface reactor.core.CoreSubscriber

  `currentContext`

  ### Methods inherited from interface org.springframework.integration.support.management.IntegrationManagement

  `getThisAs`

  ### Methods inherited from interface org.springframework.integration.support.context.NamedComponent

  `getBeanName, getComponentName`

- ## Constructor Details

  - ### JobLaunchingGateway

    public JobLaunchingGateway(JobLauncher jobLauncher)
    Constructor taking a `JobLauncher` as parameter.
    Parameters:
      `jobLauncher` - Must not be null.

- ## Method Details

  - ### handleRequestMessage

    protected Object handleRequestMessage(org.springframework.messaging.Message<?> requestMessage)
    Launches a Batch Job using the provided request `Message`. The payload of the `Message` must be an instance of `JobLaunchRequest`.
    Specified by:
      `handleRequestMessage` in class `org.springframework.integration.handler.AbstractReplyProducingMessageHandler`
    Parameters:
      `requestMessage` - must not be null.
    Returns:
      Generally a `JobExecution` will always be returned. An exception (`MessageHandlingException`) will only be thrown if there is a failure to start the job. The cause of the exception will be a `JobExecutionException`.
    Throws:
      `org.springframework.messaging.MessageHandlingException` - when a job cannot be launched