summaryrefslogtreecommitdiff
path: root/calamus-engine/src/main/java/io/trygvis/calamus/engine/MqClient.java
diff options
context:
space:
mode:
Diffstat (limited to 'calamus-engine/src/main/java/io/trygvis/calamus/engine/MqClient.java')
-rw-r--r--calamus-engine/src/main/java/io/trygvis/calamus/engine/MqClient.java44
1 files changed, 44 insertions, 0 deletions
diff --git a/calamus-engine/src/main/java/io/trygvis/calamus/engine/MqClient.java b/calamus-engine/src/main/java/io/trygvis/calamus/engine/MqClient.java
new file mode 100644
index 0000000..0cb33ad
--- /dev/null
+++ b/calamus-engine/src/main/java/io/trygvis/calamus/engine/MqClient.java
@@ -0,0 +1,44 @@
+package io.trygvis.calamus.engine;
+
+import org.apache.activemq.ActiveMQConnectionFactory;
+
+import javax.jms.Connection;
+import javax.jms.Destination;
+import javax.jms.JMSException;
+import javax.jms.MessageConsumer;
+import javax.jms.MessageListener;
+import javax.jms.Session;
+
+import static java.lang.Integer.parseInt;
+import static javax.jms.Session.AUTO_ACKNOWLEDGE;
+
+public class MqClient implements AutoCloseable {
+
+ private Connection connection;
+
+ public MqClient(String brokerUrl, String queueName, MessageListener messageListener) {
+ ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(brokerUrl);
+
+ try {
+ connection = connectionFactory.createConnection();
+ connection.start();
+
+ Session session = connection.createSession(false, AUTO_ACKNOWLEDGE);
+
+ Destination destination = session.createQueue(queueName);
+
+ MessageConsumer consumer = session.createConsumer(destination);
+ consumer.setMessageListener(messageListener);
+ } catch (JMSException e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ public void close() throws Exception {
+ if (connection != null) {
+ connection.close();
+ this.connection = null;
+ }
+ }
+}