Add timeout setting in milliseconds to ease testing.
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry including="**/*.java" kind="src" path="src/main/java"/>
|
||||
<classpathentry including="**/*.java" kind="src" output="target/test-classes" path="src/test/java"/>
|
||||
<classpathentry excluding="**/*.java" including="**" kind="src" path="src/main/resources"/>
|
||||
<classpathentry excluding="**/*.java" including="**" kind="src" output="target/test-classes" path="src/test/resources"/>
|
||||
<classpathentry kind="con" path="org.devzuz.q.maven.jdt.core.mavenClasspathContainer"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.6"/>
|
||||
<classpathentry kind="output" path="target/classes"/>
|
||||
</classpath>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry including="**/*.java" kind="src" path="src/main/java"/>
|
||||
<classpathentry including="**/*.java" kind="src" output="target/test-classes" path="src/test/java"/>
|
||||
<classpathentry excluding="**/*.java" including="**" kind="src" path="src/main/resources"/>
|
||||
<classpathentry excluding="**/*.java" including="**" kind="src" output="target/test-classes" path="src/test/resources"/>
|
||||
<classpathentry kind="con" path="org.devzuz.q.maven.jdt.core.mavenClasspathContainer"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||
<classpathentry kind="output" path="target/classes"/>
|
||||
</classpath>
|
||||
|
||||
@@ -54,8 +54,8 @@
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>javax.jms</groupId>
|
||||
<artifactId>jms</artifactId>
|
||||
<version>1.1</version>
|
||||
<artifactId>com.springsource.javax.jms</artifactId>
|
||||
<version>1.1.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
|
||||
@@ -43,7 +43,9 @@ public class MessageOrientedStep extends AbstractStep {
|
||||
|
||||
private MessageChannel replyChannel;
|
||||
|
||||
private int executionTimeoutMinutes = 30;
|
||||
private static int MINUTE = 1000 * 60;
|
||||
|
||||
private long executionTimeout = 30*MINUTE ;
|
||||
|
||||
private long pollingInterval = 5;
|
||||
|
||||
@@ -52,7 +54,15 @@ public class MessageOrientedStep extends AbstractStep {
|
||||
* @param executionTimeoutMinutes the timeout to set
|
||||
*/
|
||||
public void setExecutionTimeoutMinutes(int executionTimeoutMinutes) {
|
||||
this.executionTimeoutMinutes = executionTimeoutMinutes;
|
||||
this.executionTimeout = executionTimeoutMinutes * MINUTE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Public setter for the execution timeout in milliseconds. Defaults to 30 minutes.
|
||||
* @param executionTimeout
|
||||
*/
|
||||
public void setExecutionTimeout(long executionTimeout) {
|
||||
this.executionTimeout = executionTimeout;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -133,7 +143,7 @@ public class MessageOrientedStep extends AbstractStep {
|
||||
*/
|
||||
private void waitForReply(Long expectedJobId) {
|
||||
long timeout = pollingInterval;
|
||||
long maxCount = executionTimeoutMinutes * 1000 * 60 / timeout;
|
||||
long maxCount = executionTimeout / timeout;
|
||||
long count = 0;
|
||||
|
||||
// TODO: use a ReponseCorrelator?, or just a SynchronousChannel
|
||||
|
||||
@@ -107,6 +107,8 @@ public class MessageOrientedStepTests {
|
||||
@Test
|
||||
public void testExecuteWithTimeout() throws Exception {
|
||||
try {
|
||||
step.setExecutionTimeout(1000);
|
||||
step.setPollingInterval(100);
|
||||
step.execute(jobExecution.createStepExecution(step));
|
||||
fail("Expected StepExecutionTimeoutException");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user