You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2021/02/16 12:09:02 UTC

[camel-kafka-connector] branch master updated (671e1ea -> cc76192)

This is an automated email from the ASF dual-hosted git repository.

orpiske pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/camel-kafka-connector.git.


    from 671e1ea  Updated CHANGELOG.md
     new 6f800e3  Avoid spawning Jetty servers too quickly as they seem to cause GH actions to fail
     new cc76192  Delay starting the producer on the syslog test to avoid failing due to port not being available

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../kafkaconnector/common/utils/NetworkUtils.java  | 25 ++++++++++++++++++++++
 .../syslog/services/SourceRouteConfigurator.java   |  7 +++++-
 .../syslog/sink/CamelSinkSyslogITCase.java         |  2 --
 .../syslog/source/CamelSourceSyslogITCase.java     | 21 +++++++++++++++---
 4 files changed, 49 insertions(+), 6 deletions(-)


[camel-kafka-connector] 02/02: Delay starting the producer on the syslog test to avoid failing due to port not being available

Posted by or...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

orpiske pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-kafka-connector.git

commit cc76192dcb46de44e57280be277ee0c0d327cc5c
Author: Otavio Rodolfo Piske <op...@redhat.com>
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";


[camel-kafka-connector] 01/02: Avoid spawning Jetty servers too quickly as they seem to cause GH actions to fail

Posted by or...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

orpiske pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-kafka-connector.git

commit 6f800e321810a2c60251d367ef1a18bdf7da3231
Author: Otavio Rodolfo Piske <op...@redhat.com>
AuthorDate: Mon Feb 15 11:03:37 2021 +0100

    Avoid spawning Jetty servers too quickly as they seem to cause GH actions to fail
---
 .../syslog/source/CamelSourceSyslogITCase.java        | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

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 3a14ac2..ab80914 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
@@ -25,11 +25,15 @@ import org.apache.camel.kafkaconnector.common.test.CamelSourceTestSupport;
 import org.apache.camel.kafkaconnector.common.test.StringMessageConsumer;
 import org.apache.camel.kafkaconnector.common.test.TestMessageConsumer;
 import org.apache.camel.kafkaconnector.common.utils.NetworkUtils;
+import org.apache.camel.kafkaconnector.common.utils.TestUtils;
 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;
 import org.junit.jupiter.api.extension.RegisterExtension;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -77,11 +81,16 @@ public class CamelSourceSyslogITCase extends CamelSourceTestSupport {
     }
 
 
-    @RepeatedTest(3)
+
+
     @Timeout(90)
+    @Test
+    @DisabledIfSystemProperty(named = "enable.flaky.tests", matches = "true",
+            disabledReason = "Already executed with testBasicSendStress")
     public void testBasicSend() throws ExecutionException, InterruptedException {
         ConnectorPropertyFactory connectorPropertyFactory = CamelSyslogPropertyFactory
                 .basic()
+                .withName("CamelSyslogSourceConnector" + TestUtils.randomWithRange(0, 1000))
                 .withKafkaTopic(topicName)
                 .withHost(HOST)
                 .withPort(FREE_PORT)
@@ -92,4 +101,12 @@ public class CamelSourceSyslogITCase extends CamelSourceTestSupport {
 
         runTestBlocking(connectorPropertyFactory, stringMessageConsumer);
     }
+
+    @RepeatedTest(3)
+    @Timeout(90)
+    @EnabledIfSystemProperty(named = "enable.flaky.tests", matches = "true",
+            disabledReason = "Quickly spawning multiple Jetty Servers doesn't work well on Github Actions")
+    public void testBasicSendStress() throws ExecutionException, InterruptedException {
+        testBasicSend();
+    }
 }