Updated Branches: refs/heads/camel-2.11.x 048601dc5 -> be41c4dd5
[Spring Batch] JobExecution instance is now passed to the output message. (cherry picked from commit fee40c7) Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/be41c4dd Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/be41c4dd Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/be41c4dd Branch: refs/heads/camel-2.11.x Commit: be41c4dd5ace4a5a6f89c127d4c678f152a38724 Parents: 048601d Author: Henryk Konsek <hekon...@gmail.com> Authored: Wed Jun 5 12:08:51 2013 +0200 Committer: Henryk Konsek <hekon...@gmail.com> Committed: Wed Jun 5 12:25:36 2013 +0200 ---------------------------------------------------------------------- .../spring/batch/SpringBatchProducer.java | 4 ++- .../spring/batch/SpringBatchEndpointTest.java | 21 ++++++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/be41c4dd/components/camel-spring-batch/src/main/java/org/apache/camel/component/spring/batch/SpringBatchProducer.java ---------------------------------------------------------------------- diff --git a/components/camel-spring-batch/src/main/java/org/apache/camel/component/spring/batch/SpringBatchProducer.java b/components/camel-spring-batch/src/main/java/org/apache/camel/component/spring/batch/SpringBatchProducer.java index e6041ea..8f25f2a 100644 --- a/components/camel-spring-batch/src/main/java/org/apache/camel/component/spring/batch/SpringBatchProducer.java +++ b/components/camel-spring-batch/src/main/java/org/apache/camel/component/spring/batch/SpringBatchProducer.java @@ -23,6 +23,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.Exchange; import org.apache.camel.impl.DefaultProducer; import org.springframework.batch.core.Job; +import org.springframework.batch.core.JobExecution; import org.springframework.batch.core.JobParameters; import org.springframework.batch.core.JobParametersBuilder; import org.springframework.batch.core.launch.JobLauncher; @@ -42,7 +43,8 @@ public class SpringBatchProducer extends DefaultProducer { @Override public void process(Exchange exchange) throws Exception { JobParameters jobParameters = prepareJobParameters(exchange.getIn().getHeaders()); - jobLauncher.run(job, jobParameters); + JobExecution jobExecution = jobLauncher.run(job, jobParameters); + exchange.getOut().setBody(jobExecution); } protected JobParameters prepareJobParameters(Map<String, Object> headers) { http://git-wip-us.apache.org/repos/asf/camel/blob/be41c4dd/components/camel-spring-batch/src/test/java/org/apache/camel/component/spring/batch/SpringBatchEndpointTest.java ---------------------------------------------------------------------- diff --git a/components/camel-spring-batch/src/test/java/org/apache/camel/component/spring/batch/SpringBatchEndpointTest.java b/components/camel-spring-batch/src/test/java/org/apache/camel/component/spring/batch/SpringBatchEndpointTest.java index 7789a1a..92c1e93 100644 --- a/components/camel-spring-batch/src/test/java/org/apache/camel/component/spring/batch/SpringBatchEndpointTest.java +++ b/components/camel-spring-batch/src/test/java/org/apache/camel/component/spring/batch/SpringBatchEndpointTest.java @@ -19,8 +19,10 @@ package org.apache.camel.component.spring.batch; import java.util.Date; import org.apache.camel.CamelContext; +import org.apache.camel.EndpointInject; import org.apache.camel.FailedToCreateRouteException; import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.impl.DefaultCamelContext; import org.apache.camel.impl.JndiRegistry; import org.apache.camel.impl.SimpleRegistry; @@ -32,6 +34,7 @@ import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.springframework.batch.core.Job; +import org.springframework.batch.core.JobExecution; import org.springframework.batch.core.JobParameters; import org.springframework.batch.core.launch.JobLauncher; @@ -54,12 +57,15 @@ public class SpringBatchEndpointTest extends CamelTestSupport { // Camel fixtures + @EndpointInject(uri = "mock:test") + MockEndpoint mockEndpoint; + @Override protected RouteBuilder createRouteBuilder() throws Exception { return new RouteBuilder() { @Override public void configure() throws Exception { - from("direct:start").to("spring-batch:mockJob"); + from("direct:start").to("spring-batch:mockJob").to("mock:test"); } }; } @@ -91,6 +97,19 @@ public class SpringBatchEndpointTest extends CamelTestSupport { verify(jobLauncher).run(eq(job), any(JobParameters.class)); } + @Test + public void shouldReturnJobExecution() throws Exception { + // Given + JobExecution jobExecution = mock(JobExecution.class); + when(jobLauncher.run(eq(job), any(JobParameters.class))).thenReturn(jobExecution); + + // When + sendBody("direct:start", "Start the job, please."); + + // Then + mockEndpoint.expectedBodiesReceived(jobExecution); + } + @Test(expected = UnsupportedOperationException.class) public void shouldThrowExceptionIfUsedAsConsumer() throws Exception { // When