Updated Branches:
  refs/heads/master fb3537e98 -> e8fdf3fde

[Spring Batch] JobExecution instance is now passed to the output message.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/fee40c7e
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/fee40c7e
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/fee40c7e

Branch: refs/heads/master
Commit: fee40c7ef1163e9869dbc3f3d701778121371ece
Parents: 8aa6aa6
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:08:51 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/fee40c7e/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/fee40c7e/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

Reply via email to