Add timeout setting in milliseconds to ease testing.

This commit is contained in:
dsyer
2008-07-06 14:16:16 +00:00
parent 54b322dfa7
commit 3468859411
4 changed files with 27 additions and 15 deletions

View File

@@ -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>

View File

@@ -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>

View File

@@ -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

View File

@@ -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");
}