This is an automated email from the ASF dual-hosted git repository.
orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new a149852 (choress) camel-ftp: fix flaky
FtpReconnectAttemptServerStoppedIT test
a149852 is described below
commit a149852adc9fd6a8eb71d39edc1ff4736c881975
Author: Otavio Rodolfo Piske <[email protected]>
AuthorDate: Tue Oct 26 16:24:35 2021 +0200
(choress) camel-ftp: fix flaky FtpReconnectAttemptServerStoppedIT test
---
.../FtpReconnectAttemptServerStoppedIT.java | 19 ++++++++++---------
.../file/remote/services/FtpEmbeddedService.java | 12 ++++++++++++
2 files changed, 22 insertions(+), 9 deletions(-)
diff --git
a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/integration/FtpReconnectAttemptServerStoppedIT.java
b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/integration/FtpReconnectAttemptServerStoppedIT.java
index 60c0631..30aa502 100644
---
a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/integration/FtpReconnectAttemptServerStoppedIT.java
+++
b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/integration/FtpReconnectAttemptServerStoppedIT.java
@@ -19,19 +19,25 @@ package org.apache.camel.component.file.remote.integration;
import org.apache.camel.Exchange;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
+import org.awaitility.Awaitility;
+import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Timeout;
public class FtpReconnectAttemptServerStoppedIT extends FtpServerTestSupport {
private String getFtpUrl() {
return "ftp://admin@localhost:{{ftp.server.port}}"
- +
"/reconnect?password=admin&maximumReconnectAttempts=2&reconnectDelay=500&delete=true";
+ +
"/reconnect?password=admin&maximumReconnectAttempts=5&reconnectDelay=1000&delete=true";
}
@Test
+ @Timeout(15)
public void testFromFileToFtp() throws Exception {
- // suspect serve so we cannot connect
- service.suspend();
+ // disconnect all the connections so that they have to reconnect again
+ service.disconnectAllSessions();
+
+ Awaitility.await().until(() -> service.countConnections() == 0);
// put a file in the folder (do not use ftp as we then will connect)
template.sendBodyAndHeader("file:{{ftp.root.dir}}/reconnect", "Hello
World", Exchange.FILE_NAME,
@@ -40,9 +46,6 @@ public class FtpReconnectAttemptServerStoppedIT extends
FtpServerTestSupport {
MockEndpoint mock = getMockEndpoint("mock:result");
mock.expectedMessageCount(0);
- // let it run a little
- Thread.sleep(3000);
-
assertMockEndpointsSatisfied();
mock.reset();
@@ -51,10 +54,8 @@ public class FtpReconnectAttemptServerStoppedIT extends
FtpServerTestSupport {
// resume the server so we can connect
service.resume();
- // wait a bit so that the server resumes properly
- Thread.sleep(3000);
-
assertMockEndpointsSatisfied();
+ Awaitility.await().untilAsserted(() -> Assertions.assertEquals(1,
service.countConnections()));
}
@Override
diff --git
a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/services/FtpEmbeddedService.java
b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/services/FtpEmbeddedService.java
index d1f8277..5953a37 100644
---
a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/services/FtpEmbeddedService.java
+++
b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/services/FtpEmbeddedService.java
@@ -179,4 +179,16 @@ public class FtpEmbeddedService extends
AbstractTestService implements FtpServic
public int getPort() {
return port;
}
+
+ public int countConnections() {
+ int count = 0;
+
+ // stop all listeners
+ Map<String, Listener> listeners = ((DefaultFtpServer)
ftpServer).getListeners();
+ for (Listener listener : listeners.values()) {
+ count += listener.getActiveSessions().size();
+ }
+
+ return count;
+ }
}