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

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

commit 80c22fedd99077754c804c40a1c82c14ea587d2e
Author: Otavio Rodolfo Piske <opi...@redhat.com>
AuthorDate: Thu Nov 5 15:15:57 2020 +0100

    Decouple the JMS client from the service to simplify using the test infra 
from Camel
---
 .../kafkaconnector/sjms2/clients/JMSClient.java    | 45 ++++++++++++++++++++++
 .../sjms2/services/ArtemisContainer.java           |  6 ---
 .../sjms2/services/ContainerLocalService.java      |  6 ---
 .../sjms2/services/JMSContainer.java               |  7 ----
 .../kafkaconnector/sjms2/services/JMSService.java  |  7 ----
 .../services/QpidDispatchRouterContainer.java      |  6 ---
 .../sjms2/services/RemoteJMSService.java           | 12 ------
 .../sjms2/sink/CamelSinkJMSITCase.java             |  2 +-
 .../sjms2/source/CamelSourceJMSITCase.java         |  2 +-
 .../source/CamelSourceJMSWithAggregation.java      |  2 +-
 10 files changed, 48 insertions(+), 47 deletions(-)

diff --git 
a/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/clients/JMSClient.java
 
b/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/clients/JMSClient.java
index 7aefc5a..43586c6 100644
--- 
a/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/clients/JMSClient.java
+++ 
b/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/clients/JMSClient.java
@@ -289,4 +289,49 @@ public class JMSClient {
             jmsProducer.stop();
         }
     }
+
+    private static JMSClient newLocalClient(String endpoint) {
+        String jmsClientType = 
System.getProperty("jms-service.transport.protocol");
+
+        if (jmsClientType == null || jmsClientType.isEmpty() || 
jmsClientType.equals("qpid")) {
+            return new 
JMSClient(org.apache.qpid.jms.JmsConnectionFactory::new, endpoint);
+        }
+
+        if (jmsClientType.equals("openwire")) {
+            return new 
JMSClient(org.apache.activemq.ActiveMQConnectionFactory::new, endpoint);
+        }
+
+        throw new UnsupportedOperationException("Invalid JMS transport 
protocol");
+    }
+
+    private static JMSClient newRemoteClient(String endpoint) {
+        String tmpConnectionFactory = 
System.getProperty("camel.component.sjms2.connection-factory");
+        if (tmpConnectionFactory == null) {
+            throw new UnsupportedOperationException("JMS connection factory 
class must be provided");
+        }
+
+        String connectionFactory = tmpConnectionFactory.replace("#class:", "");
+
+
+        String jmsClientType = 
System.getProperty("jms-service.transport.protocol");
+        if (jmsClientType == null || jmsClientType.isEmpty() || 
jmsClientType.equals("qpid")) {
+            return new JMSClient(connectionFactory, endpoint);
+        }
+
+        if (jmsClientType.equals("openwire")) {
+            return new JMSClient(connectionFactory, endpoint);
+        }
+
+        throw new UnsupportedOperationException("Invalid JMS transport 
protocol");
+    }
+
+    public static JMSClient newClient(String endpoint) {
+        String jmsInstanceType = 
System.getProperty("jms-service.instance.type");
+
+        if (jmsInstanceType == null || !jmsInstanceType.equals("remote")) {
+            return newLocalClient(endpoint);
+        }
+
+        return newRemoteClient(endpoint);
+    }
 }
diff --git 
a/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/services/ArtemisContainer.java
 
b/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/services/ArtemisContainer.java
index b06ba3f..dddcd66 100644
--- 
a/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/services/ArtemisContainer.java
+++ 
b/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/services/ArtemisContainer.java
@@ -19,7 +19,6 @@ package org.apache.camel.kafkaconnector.sjms2.services;
 
 import java.util.Properties;
 
-import org.apache.camel.kafkaconnector.sjms2.clients.JMSClient;
 import org.testcontainers.containers.wait.strategy.Wait;
 import org.testcontainers.images.builder.ImageFromDockerfile;
 
@@ -140,9 +139,4 @@ public class ArtemisContainer extends JMSContainer {
 
         return properties;
     }
-
-    @Override
-    public JMSClient getClient() {
-        return new 
JMSClient(org.apache.activemq.ActiveMQConnectionFactory::new, 
getDefaultEndpoint());
-    }
 }
diff --git 
a/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/services/ContainerLocalService.java
 
b/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/services/ContainerLocalService.java
index 6e186e8..9e2264f 100644
--- 
a/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/services/ContainerLocalService.java
+++ 
b/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/services/ContainerLocalService.java
@@ -19,7 +19,6 @@ package org.apache.camel.kafkaconnector.sjms2.services;
 
 import java.util.Properties;
 
-import org.apache.camel.kafkaconnector.sjms2.clients.JMSClient;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -44,11 +43,6 @@ public class ContainerLocalService implements JMSService {
     }
 
     @Override
-    public JMSClient getClient() {
-        return container.getClient();
-    }
-
-    @Override
     public String getDefaultEndpoint() {
         return container.getDefaultEndpoint();
     }
diff --git 
a/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/services/JMSContainer.java
 
b/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/services/JMSContainer.java
index 5a23755..65171d9 100644
--- 
a/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/services/JMSContainer.java
+++ 
b/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/services/JMSContainer.java
@@ -19,7 +19,6 @@ package org.apache.camel.kafkaconnector.sjms2.services;
 
 import java.util.Properties;
 
-import org.apache.camel.kafkaconnector.sjms2.clients.JMSClient;
 import org.testcontainers.containers.GenericContainer;
 import org.testcontainers.images.builder.ImageFromDockerfile;
 
@@ -38,12 +37,6 @@ public abstract class JMSContainer extends 
GenericContainer<JMSContainer> {
 
 
     /**
-     * Get a client that can access the container
-     * @return
-     */
-    public abstract JMSClient getClient();
-
-    /**
      * Gets the end point URL used exchanging messages through the default 
acceptor port
      * @return the end point URL as a string
      */
diff --git 
a/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/services/JMSService.java
 
b/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/services/JMSService.java
index cc0d8fc..902562a 100644
--- 
a/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/services/JMSService.java
+++ 
b/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/services/JMSService.java
@@ -19,7 +19,6 @@ package org.apache.camel.kafkaconnector.sjms2.services;
 
 import java.util.Properties;
 
-import org.apache.camel.kafkaconnector.sjms2.clients.JMSClient;
 import org.junit.jupiter.api.extension.AfterAllCallback;
 import org.junit.jupiter.api.extension.BeforeAllCallback;
 import org.junit.jupiter.api.extension.ExtensionContext;
@@ -33,12 +32,6 @@ public interface JMSService extends BeforeAllCallback, 
AfterAllCallback {
     Properties getConnectionProperties();
 
     /**
-     * Get the appropriate client for the service
-     * @return
-     */
-    JMSClient getClient();
-
-    /**
      * Gets the default endpoint for the JMS service (ie.: amqp://host:port, 
or tcp://host:port, etc)
      * @return the endpoint URL as a string in the specific format used by the 
service
      */
diff --git 
a/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/services/QpidDispatchRouterContainer.java
 
b/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/services/QpidDispatchRouterContainer.java
index 952be2e..83f6175 100644
--- 
a/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/services/QpidDispatchRouterContainer.java
+++ 
b/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/services/QpidDispatchRouterContainer.java
@@ -19,7 +19,6 @@ package org.apache.camel.kafkaconnector.sjms2.services;
 
 import java.util.Properties;
 
-import org.apache.camel.kafkaconnector.sjms2.clients.JMSClient;
 import org.testcontainers.containers.wait.strategy.Wait;
 import org.testcontainers.images.builder.ImageFromDockerfile;
 
@@ -69,9 +68,4 @@ public class QpidDispatchRouterContainer extends JMSContainer 
{
 
         return properties;
     }
-
-    @Override
-    public JMSClient getClient() {
-        return new JMSClient(org.apache.qpid.jms.JmsConnectionFactory::new, 
getDefaultEndpoint());
-    }
 }
diff --git 
a/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/services/RemoteJMSService.java
 
b/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/services/RemoteJMSService.java
index 2f39b8a..6779f98 100644
--- 
a/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/services/RemoteJMSService.java
+++ 
b/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/services/RemoteJMSService.java
@@ -20,7 +20,6 @@ package org.apache.camel.kafkaconnector.sjms2.services;
 import java.util.Properties;
 
 import org.apache.camel.kafkaconnector.common.utils.PropertyUtils;
-import org.apache.camel.kafkaconnector.sjms2.clients.JMSClient;
 
 public class RemoteJMSService implements JMSService {
 
@@ -44,15 +43,4 @@ public class RemoteJMSService implements JMSService {
     public String getDefaultEndpoint() {
         return System.getProperty("jms.broker.address");
     }
-
-    @Override
-    public JMSClient getClient() {
-        String tmpConnectionFactory = 
System.getProperty("camel.component.sjms2.connection-factory");
-
-        String connectionFactory = tmpConnectionFactory.replace("#class:", "");
-
-        return new JMSClient(connectionFactory, getDefaultEndpoint());
-
-
-    }
 }
diff --git 
a/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/sink/CamelSinkJMSITCase.java
 
b/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/sink/CamelSinkJMSITCase.java
index 0f3db92..36b50f2 100644
--- 
a/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/sink/CamelSinkJMSITCase.java
+++ 
b/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/sink/CamelSinkJMSITCase.java
@@ -158,7 +158,7 @@ public class CamelSinkJMSITCase extends AbstractKafkaTest {
         JMSClient jmsClient = null;
 
         try {
-            jmsClient = jmsService.getClient();
+            jmsClient = JMSClient.newClient(jmsService.getDefaultEndpoint());
 
             jmsClient.start();
 
diff --git 
a/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/source/CamelSourceJMSITCase.java
 
b/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/source/CamelSourceJMSITCase.java
index addc2b5..c5564ce 100644
--- 
a/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/source/CamelSourceJMSITCase.java
+++ 
b/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/source/CamelSourceJMSITCase.java
@@ -63,7 +63,7 @@ public class CamelSourceJMSITCase extends AbstractKafkaTest {
     @BeforeEach
     public void setUp() {
         received = 0;
-        jmsClient = jmsService.getClient();
+        jmsClient = JMSClient.newClient(jmsService.getDefaultEndpoint());
     }
 
     private <T> boolean checkRecord(ConsumerRecord<String, T> record) {
diff --git 
a/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/source/CamelSourceJMSWithAggregation.java
 
b/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/source/CamelSourceJMSWithAggregation.java
index e9ea5f4..187b25c 100644
--- 
a/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/source/CamelSourceJMSWithAggregation.java
+++ 
b/tests/itests-sjms2/src/test/java/org/apache/camel/kafkaconnector/sjms2/source/CamelSourceJMSWithAggregation.java
@@ -61,7 +61,7 @@ public class CamelSourceJMSWithAggregation extends 
AbstractKafkaTest {
     @BeforeEach
     public void setUp() {
         received = 0;
-        jmsClient = jmsService.getClient();
+        jmsClient = JMSClient.newClient(jmsService.getDefaultEndpoint());
 
         for (int i = 0; i < sentSize - 1; i++) {
             expectedMessage += "hello;\n";

Reply via email to