diff --git a/spring-jms/pom.xml b/spring-jms/pom.xml new file mode 100644 index 0000000000..8f78469989 --- /dev/null +++ b/spring-jms/pom.xml @@ -0,0 +1,57 @@ + + 4.0.0 + com.baeldung + spring-jms + 0.0.1-SNAPSHOT + war + spring-jms + Introduction to Spring JMS + + + 4.3.2.RELEASE + 5.12.0 + + + + + + org.springframework + spring-jms + ${springframework.version} + + + + org.apache.activemq + activemq-all + ${activemq.version} + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.2 + + 1.7 + 1.7 + + + + org.apache.maven.plugins + maven-war-plugin + 2.4 + + src/main/webapp + spring-jms + false + + + + + spring-jms + + \ No newline at end of file diff --git a/spring-jms/src/com/baeldung/spring/jms/Employee.java b/spring-jms/src/com/baeldung/spring/jms/Employee.java new file mode 100644 index 0000000000..8b45607b38 --- /dev/null +++ b/spring-jms/src/com/baeldung/spring/jms/Employee.java @@ -0,0 +1,19 @@ +package com.baeldung.spring.jms; + +public class Employee { + private String name; + private Integer age; + public Employee(String name, Integer age) { + this.name = name; + this.age = age; + } + public String getName() { + return name; + } + public Integer getAge() { + return age; + } + public String toString() { + return "Person: name(" + name + "), age(" + age + ")"; + } +} diff --git a/spring-jms/src/com/baeldung/spring/jms/SampleJMSExample.java b/spring-jms/src/com/baeldung/spring/jms/SampleJMSExample.java new file mode 100644 index 0000000000..bdde97b82d --- /dev/null +++ b/spring-jms/src/com/baeldung/spring/jms/SampleJMSExample.java @@ -0,0 +1,17 @@ +package com.baeldung.spring.jms; + +import java.net.URI; +import java.net.URISyntaxException; + +import org.apache.activemq.broker.BrokerFactory; +import org.apache.activemq.broker.BrokerService; +import org.springframework.context.support.ClassPathXmlApplicationContext; + +public class SampleJMSExample { + public static void main(String[] args) throws URISyntaxException, Exception { + BrokerService broker = BrokerFactory.createBroker(new URI("broker:(tcp://localhost:61616)")); + broker.start(); + ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); + + } +} diff --git a/spring-jms/src/com/baeldung/spring/jms/SampleJmsMessageSender.java b/spring-jms/src/com/baeldung/spring/jms/SampleJmsMessageSender.java new file mode 100644 index 0000000000..e3eccea03e --- /dev/null +++ b/spring-jms/src/com/baeldung/spring/jms/SampleJmsMessageSender.java @@ -0,0 +1,32 @@ +package com.baeldung.spring.jms; + +import javax.jms.ConnectionFactory; +import javax.jms.JMSException; +import javax.jms.Message; +import javax.jms.Queue; +import javax.jms.Session; + +import org.springframework.jms.core.JmsTemplate; +import org.springframework.jms.core.MessageCreator; + +public class SampleJmsMessageSender { + + private JmsTemplate jmsTemplate; + private Queue queue; + + public void setConnectionFactory(ConnectionFactory cf) { + this.jmsTemplate = new JmsTemplate(cf); + } + + public void setQueue(Queue queue) { + this.queue = queue; + } + + public void simpleSend() { + this.jmsTemplate.send(this.queue, new MessageCreator() { + public Message createMessage(Session session) throws JMSException { + return session.createTextMessage("hello queue world"); + } + }); + } +} \ No newline at end of file diff --git a/spring-jms/src/com/baeldung/spring/jms/SampleListener.java b/spring-jms/src/com/baeldung/spring/jms/SampleListener.java new file mode 100644 index 0000000000..466cac44a0 --- /dev/null +++ b/spring-jms/src/com/baeldung/spring/jms/SampleListener.java @@ -0,0 +1,23 @@ +package com.baeldung.spring.jms; + +import javax.jms.JMSException; +import javax.jms.Message; +import javax.jms.MessageListener; +import javax.jms.TextMessage; + +public class SampleListener implements MessageListener { + + private String textMessage; + + public void onMessage(Message message) { + if (message instanceof TextMessage) { + try { + textMessage = ((TextMessage) message).getText(); + } catch (JMSException ex) { + throw new RuntimeException(ex); + } + } else { + throw new IllegalArgumentException("Message Error"); + } + } +} \ No newline at end of file diff --git a/spring-jms/src/com/baeldung/spring/jms/SampleMessageConverter.java b/spring-jms/src/com/baeldung/spring/jms/SampleMessageConverter.java new file mode 100644 index 0000000000..ff8767c78d --- /dev/null +++ b/spring-jms/src/com/baeldung/spring/jms/SampleMessageConverter.java @@ -0,0 +1,29 @@ +package com.baeldung.spring.jms; + +import javax.jms.JMSException; +import javax.jms.MapMessage; +import javax.jms.Message; +import javax.jms.Session; + +import org.springframework.jms.support.converter.MessageConversionException; +import org.springframework.jms.support.converter.MessageConverter; + +public class SampleMessageConverter implements MessageConverter{ + + public Message toMessage(Object object, Session session) + throws JMSException, MessageConversionException { + Employee person = (Employee) object; + MapMessage message = session.createMapMessage(); + message.setString("name", person.getName()); + message.setInt("age", person.getAge()); + return message; + } + + public Object fromMessage(Message message) throws JMSException, + MessageConversionException { + MapMessage mapMessage = (MapMessage) message; + Employee person = new Employee(mapMessage.getString("name"), mapMessage.getInt("age")); + return person; + } + +} diff --git a/spring-jms/src/main/resources/applicationContext.xml b/spring-jms/src/main/resources/applicationContext.xml new file mode 100644 index 0000000000..c15289763f --- /dev/null +++ b/spring-jms/src/main/resources/applicationContext.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file