GH-3062: Fix Mail Tests Hang
Resolves https://github.com/spring-projects/spring-integration/issues/3062 Reliably stop the test mail servers before the test context is destroyed.
This commit is contained in:
@@ -33,13 +33,13 @@ import javax.mail.search.FlagTerm;
|
||||
import javax.mail.search.FromTerm;
|
||||
import javax.mail.search.SearchTerm;
|
||||
|
||||
import org.junit.AfterClass;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.context.SmartLifecycle;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.integration.IntegrationMessageHeaderAccessor;
|
||||
@@ -92,14 +92,6 @@ public class MailTests {
|
||||
assertThat(n < 100).isTrue();
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
public static void tearDown() {
|
||||
smtpServer.stop();
|
||||
pop3Server.stop();
|
||||
imapServer.stop();
|
||||
imapIdleServer.stop();
|
||||
}
|
||||
|
||||
@Autowired
|
||||
private MessageChannel sendMailChannel;
|
||||
|
||||
@@ -189,6 +181,35 @@ public class MailTests {
|
||||
@EnableIntegration
|
||||
public static class ContextConfiguration {
|
||||
|
||||
@Bean
|
||||
public SmartLifecycle serverStopper() {
|
||||
return new SmartLifecycle() {
|
||||
|
||||
@Override
|
||||
public int getPhase() {
|
||||
return Integer.MAX_VALUE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stop() {
|
||||
smtpServer.stop();
|
||||
pop3Server.stop();
|
||||
imapServer.stop();
|
||||
imapIdleServer.stop();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isRunning() {
|
||||
return true;
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
@Bean
|
||||
public IntegrationFlow sendMailFlow() {
|
||||
return IntegrationFlows.from("sendMailChannel")
|
||||
|
||||
Reference in New Issue
Block a user