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 2023/07/26 13:10:54 UTC

[camel] branch main updated: (chores) came-jms: avoid failing the test due to session being closed (#10835)

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 b5a701eb24d (chores) came-jms: avoid failing the test due to session being closed (#10835)
b5a701eb24d is described below

commit b5a701eb24d12e33a2c4ff8939774a20ffb83b48
Author: Otavio Rodolfo Piske <or...@users.noreply.github.com>
AuthorDate: Wed Jul 26 15:10:46 2023 +0200

    (chores) came-jms: avoid failing the test due to session being closed (#10835)
    
    This reuses the same approach from another commit and applies to another similar test (ref.: 2396b3c4b8d7f1df0b411330e5497fb16bc669d0)
---
 .../jms/JmsInOnlyDisableTimeToLiveTest.java        | 53 ++----------------
 .../jms/JmsInOutDisableTimeToLiveTest.java         | 41 +-------------
 .../org/apache/camel/component/jms/MyCoolBean.java | 65 ++++++++++++++++++++++
 3 files changed, 71 insertions(+), 88 deletions(-)

diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyDisableTimeToLiveTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyDisableTimeToLiveTest.java
index 6dd5ad54586..7f92cd54438 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyDisableTimeToLiveTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyDisableTimeToLiveTest.java
@@ -22,14 +22,13 @@ import org.apache.camel.ProducerTemplate;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.infra.core.CamelContextExtension;
-import org.apache.camel.test.infra.core.DefaultCamelContextExtension;
+import org.apache.camel.test.infra.core.TransientCamelContextExtension;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Order;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.jms.IllegalStateException;
 
 public class JmsInOnlyDisableTimeToLiveTest extends AbstractJMSTest {
 
@@ -37,7 +36,7 @@ public class JmsInOnlyDisableTimeToLiveTest extends AbstractJMSTest {
 
     @Order(2)
     @RegisterExtension
-    public static CamelContextExtension camelContextExtension = new DefaultCamelContextExtension();
+    public static CamelContextExtension camelContextExtension = new TransientCamelContextExtension();
     protected CamelContext context;
     protected ProducerTemplate template;
     protected ConsumerTemplate consumer;
@@ -47,9 +46,7 @@ public class JmsInOnlyDisableTimeToLiveTest extends AbstractJMSTest {
 
     @Test
     public void testInOnlyExpired() throws Exception {
-        MyCoolBean cool = new MyCoolBean();
-        cool.setProducer(template);
-        cool.setConsumer(consumer);
+        MyCoolBean cool = new MyCoolBean(consumer, template, "JmsInOnlyDisableTimeToLiveTest");
 
         getMockEndpoint("mock:result").expectedBodiesReceived("World 1");
 
@@ -72,9 +69,7 @@ public class JmsInOnlyDisableTimeToLiveTest extends AbstractJMSTest {
 
     @Test
     public void testInOnlyDisabledTimeToLive() throws Exception {
-        MyCoolBean cool = new MyCoolBean();
-        cool.setProducer(template);
-        cool.setConsumer(consumer);
+        MyCoolBean cool = new MyCoolBean(consumer, template, "JmsInOnlyDisableTimeToLiveTest");
 
         getMockEndpoint("mock:result").expectedBodiesReceived("World 2");
 
@@ -132,44 +127,4 @@ public class JmsInOnlyDisableTimeToLiveTest extends AbstractJMSTest {
         consumer = camelContextExtension.getConsumerTemplate();
     }
 
-    public static class MyCoolBean {
-        private int count;
-        private ConsumerTemplate consumer;
-        private ProducerTemplate producer;
-
-        public void setConsumer(ConsumerTemplate consumer) {
-            this.consumer = consumer;
-        }
-
-        public void setProducer(ProducerTemplate producer) {
-            this.producer = producer;
-        }
-
-        public void someBusinessLogic() {
-            // loop to empty queue
-            while (true) {
-                // receive the message from the queue, wait at most 2 sec
-                try {
-                    String msg = consumer.receiveBody("activemq:JmsInOnlyDisableTimeToLiveTest.in", 2000, String.class);
-                    if (msg == null) {
-                        // no more messages in queue
-                        break;
-                    }
-                    // do something with body
-                    msg = "Hello " + msg;
-
-                    // send it to the next queue
-                    producer.sendBodyAndHeader("activemq:JmsInOnlyDisableTimeToLiveTest.out", msg, "number", count++);
-                } catch (IllegalStateException e) {
-                    if (e.getCause() instanceof jakarta.jms.IllegalStateException) {
-                        // session is closed
-                        LOG.warn("JMS Session is closed");
-                        break;
-                    }
-                }
-
-            }
-        }
-    }
-
 }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutDisableTimeToLiveTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutDisableTimeToLiveTest.java
index 702ca170c5d..e061dc3b002 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutDisableTimeToLiveTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutDisableTimeToLiveTest.java
@@ -45,9 +45,7 @@ public class JmsInOutDisableTimeToLiveTest extends AbstractJMSTest {
 
     @Test
     public void testInOutExpired() throws Exception {
-        MyCoolBean cool = new MyCoolBean();
-        cool.setProducer(template);
-        cool.setConsumer(consumer);
+        MyCoolBean cool = new MyCoolBean(consumer, template, "JmsInOutDisableTimeToLiveTest");
 
         getMockEndpoint("mock:result").expectedMessageCount(0);
         getMockEndpoint("mock:end").expectedMessageCount(0);
@@ -66,9 +64,7 @@ public class JmsInOutDisableTimeToLiveTest extends AbstractJMSTest {
 
     @Test
     public void testInOutDisableTimeToLive() throws Exception {
-        MyCoolBean cool = new MyCoolBean();
-        cool.setProducer(template);
-        cool.setConsumer(consumer);
+        MyCoolBean cool = new MyCoolBean(consumer, template, "JmsInOutDisableTimeToLiveTest");
 
         getMockEndpoint("mock:result").expectedMessageCount(0);
         getMockEndpoint("mock:end").expectedBodiesReceived("Hello World 2");
@@ -121,37 +117,4 @@ public class JmsInOutDisableTimeToLiveTest extends AbstractJMSTest {
         template = camelContextExtension.getProducerTemplate();
         consumer = camelContextExtension.getConsumerTemplate();
     }
-
-    public static class MyCoolBean {
-        private int count;
-        private ConsumerTemplate consumer;
-        private ProducerTemplate producer;
-
-        public void setConsumer(ConsumerTemplate consumer) {
-            this.consumer = consumer;
-        }
-
-        public void setProducer(ProducerTemplate producer) {
-            this.producer = producer;
-        }
-
-        public void someBusinessLogic() {
-            // loop to empty queue
-            while (true) {
-                // receive the message from the queue, wait at most 2 sec
-                String msg = consumer.receiveBody("activemq:JmsInOutDisableTimeToLiveTest.in", 2000, String.class);
-                if (msg == null) {
-                    // no more messages in queue
-                    break;
-                }
-
-                // do something with body
-                msg = "Hello " + msg;
-
-                // send it to the next queue
-                producer.sendBodyAndHeader("activemq:JmsInOutDisableTimeToLiveTest.out", msg, "number", count++);
-            }
-        }
-    }
-
 }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/MyCoolBean.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/MyCoolBean.java
new file mode 100644
index 00000000000..2643e4a198d
--- /dev/null
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/MyCoolBean.java
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.camel.component.jms;
+
+import org.apache.camel.ConsumerTemplate;
+import org.apache.camel.ProducerTemplate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.jms.IllegalStateException;
+
+final class MyCoolBean {
+    private static final Logger LOG = LoggerFactory.getLogger(MyCoolBean.class);
+
+    private int count;
+    private final ConsumerTemplate consumer;
+    private final ProducerTemplate producer;
+    private final String queueName;
+
+    public MyCoolBean(ConsumerTemplate consumer, ProducerTemplate producer, String queueName) {
+        this.consumer = consumer;
+        this.producer = producer;
+        this.queueName = queueName;
+    }
+
+    public void someBusinessLogic() {
+        // loop to empty queue
+        while (true) {
+            // receive the message from the queue, wait at most 2 sec
+            try {
+                String msg = consumer.receiveBody("activemq:" + queueName + ".in", 2000, String.class);
+                if (msg == null) {
+                    // no more messages in queue
+                    break;
+                }
+                // do something with body
+                msg = "Hello " + msg;
+
+                // send it to the next queue
+                producer.sendBodyAndHeader("activemq:" + queueName + ".out", msg, "number", count++);
+            } catch (IllegalStateException e) {
+                if (e.getCause() instanceof jakarta.jms.IllegalStateException) {
+                    // session is closed
+                    LOG.warn("JMS Session is closed");
+                    break;
+                }
+            }
+
+        }
+    }
+}