This is an automated email from the ASF dual-hosted git repository.
orpiske pushed a commit to branch camel-master
in repository https://gitbox.apache.org/repos/asf/camel-kafka-connector.git
The following commit(s) were added to refs/heads/camel-master by this push:
new 698482d Delay starting the producer on the syslog test to avoid
failing due to port not being available
698482d is described below
commit 698482de7b9aa710fe124114c27f0bd7cc3b6558
Author: Otavio Rodolfo Piske <[email protected]>
AuthorDate: Tue Feb 16 08:44:33 2021 +0100
Delay starting the producer on the syslog test to avoid failing due to port
not being available
---
.../kafkaconnector/common/utils/NetworkUtils.java | 25 ++++++++++++++++++++++
.../syslog/services/SourceRouteConfigurator.java | 7 +++++-
.../syslog/sink/CamelSinkSyslogITCase.java | 2 --
.../syslog/source/CamelSourceSyslogITCase.java | 2 --
4 files changed, 31 insertions(+), 5 deletions(-)
diff --git
a/tests/itests-common/src/test/java/org/apache/camel/kafkaconnector/common/utils/NetworkUtils.java
b/tests/itests-common/src/test/java/org/apache/camel/kafkaconnector/common/utils/NetworkUtils.java
index 4b1437e..79f9c60 100644
---
a/tests/itests-common/src/test/java/org/apache/camel/kafkaconnector/common/utils/NetworkUtils.java
+++
b/tests/itests-common/src/test/java/org/apache/camel/kafkaconnector/common/utils/NetworkUtils.java
@@ -17,14 +17,22 @@
package org.apache.camel.kafkaconnector.common.utils;
import java.io.IOException;
+import java.net.ConnectException;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
+import java.net.Socket;
+import java.net.UnknownHostException;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public final class NetworkUtils {
public static final int DEFAULT_STARTING_PORT = 49152;
public static final int DEFAULT_ENDING_PORT = 65535;
+ private static final Logger LOG =
LoggerFactory.getLogger(NetworkUtils.class);
+
private NetworkUtils() {
// utils class
}
@@ -80,6 +88,23 @@ public final class NetworkUtils {
}
}
+ public static boolean portIsOpen(String host, int port) {
+ try (Socket socket = new Socket(host, port)) {
+ return true;
+ } catch (UnknownHostException e) {
+ LOG.warn("Unknown host: {}", host);
+ return false;
+ } catch (IOException e) {
+ if (e instanceof ConnectException) {
+ LOG.info("Port {} is likely closed: {}", port, e.getMessage());
+ } else {
+ LOG.warn("Unhandled I/O exception: {}", e.getMessage(), e);
+ }
+
+ return false;
+ }
+ }
+
public enum Protocol {
UDP,
TCP
diff --git
a/tests/itests-syslog/src/test/java/org/apache/camel/kafkaconnector/syslog/services/SourceRouteConfigurator.java
b/tests/itests-syslog/src/test/java/org/apache/camel/kafkaconnector/syslog/services/SourceRouteConfigurator.java
index a088940..5281966 100644
---
a/tests/itests-syslog/src/test/java/org/apache/camel/kafkaconnector/syslog/services/SourceRouteConfigurator.java
+++
b/tests/itests-syslog/src/test/java/org/apache/camel/kafkaconnector/syslog/services/SourceRouteConfigurator.java
@@ -21,6 +21,8 @@ import org.apache.camel.CamelContext;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.syslog.SyslogDataFormat;
import org.apache.camel.component.syslog.netty.Rfc5425Encoder;
+import org.apache.camel.kafkaconnector.common.utils.NetworkUtils;
+import org.apache.camel.kafkaconnector.common.utils.TestUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -47,8 +49,11 @@ public class SourceRouteConfigurator implements
RouteConfigurator {
public void configure() {
from("direct:test")
.marshal(new SyslogDataFormat())
-
.toF("netty:%s://%s:%d?sync=false&encoders=#encoder&useByteBuf=true", protocol,
host, port);
+
.toF("netty:%s://%s:%d?sync=false&encoders=#encoder&useByteBuf=true&lazyStartProducer=true",
+ protocol, host, port);
}
});
+
+ TestUtils.waitFor(() -> NetworkUtils.portIsOpen(host, port));
}
}
diff --git
a/tests/itests-syslog/src/test/java/org/apache/camel/kafkaconnector/syslog/sink/CamelSinkSyslogITCase.java
b/tests/itests-syslog/src/test/java/org/apache/camel/kafkaconnector/syslog/sink/CamelSinkSyslogITCase.java
index a2620dc..ab04b7d 100644
---
a/tests/itests-syslog/src/test/java/org/apache/camel/kafkaconnector/syslog/sink/CamelSinkSyslogITCase.java
+++
b/tests/itests-syslog/src/test/java/org/apache/camel/kafkaconnector/syslog/sink/CamelSinkSyslogITCase.java
@@ -28,7 +28,6 @@ import
org.apache.camel.kafkaconnector.common.utils.NetworkUtils;
import org.apache.camel.kafkaconnector.syslog.services.SyslogService;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.TestInstance;
import org.junit.jupiter.api.Timeout;
import org.junit.jupiter.api.extension.RegisterExtension;
@@ -41,7 +40,6 @@ import static org.junit.jupiter.api.Assertions.fail;
* A simple test case that checks whether the syslog send the expected number
of
* messages
*/
-@TestInstance(TestInstance.Lifecycle.PER_CLASS)
public class CamelSinkSyslogITCase extends CamelSinkTestSupport {
private static final String HOST = "localhost";
private static final String PROTOCOL = "udp";
diff --git
a/tests/itests-syslog/src/test/java/org/apache/camel/kafkaconnector/syslog/source/CamelSourceSyslogITCase.java
b/tests/itests-syslog/src/test/java/org/apache/camel/kafkaconnector/syslog/source/CamelSourceSyslogITCase.java
index ab80914..52a77b8 100644
---
a/tests/itests-syslog/src/test/java/org/apache/camel/kafkaconnector/syslog/source/CamelSourceSyslogITCase.java
+++
b/tests/itests-syslog/src/test/java/org/apache/camel/kafkaconnector/syslog/source/CamelSourceSyslogITCase.java
@@ -30,7 +30,6 @@ import
org.apache.camel.kafkaconnector.syslog.services.SyslogService;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.RepeatedTest;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.TestInstance;
import org.junit.jupiter.api.Timeout;
import org.junit.jupiter.api.condition.DisabledIfSystemProperty;
import org.junit.jupiter.api.condition.EnabledIfSystemProperty;
@@ -43,7 +42,6 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
* A simple test case that checks whether the timer produces the expected
number of
* messages
*/
-@TestInstance(TestInstance.Lifecycle.PER_CLASS)
public class CamelSourceSyslogITCase extends CamelSourceTestSupport {
private static final String HOST = "localhost";
private static final String PROTOCOL = "udp";