Skip to content

Commit 96de493

Browse files
committed
Pub sub example
1 parent 5c24a53 commit 96de493

File tree

6 files changed

+202
-1
lines changed

6 files changed

+202
-1
lines changed

activemq/src/main/java/com/test/second/sendobject/EventMessage.java renamed to activemq/src/main/java/com/test/common/EventMessage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.test.second.sendobject;
1+
package com.test.common;
22

33
import java.io.Serializable;
44

activemq/src/main/java/com/test/second/sendobject/Consumer.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import org.apache.activemq.ActiveMQConnection;
1313
import org.apache.activemq.ActiveMQConnectionFactory;
1414

15+
import com.test.common.EventMessage;
16+
1517
public class Consumer {
1618
private ConnectionFactory factory = null;
1719
private Connection connection = null;

activemq/src/main/java/com/test/second/sendobject/Producer.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
import org.apache.activemq.ActiveMQConnection;
1515
import org.apache.activemq.ActiveMQConnectionFactory;
1616

17+
import com.test.common.EventMessage;
18+
1719
/**
1820
*
1921
* @author Deepak.Keswani
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
/**
2+
* Site reffered:
3+
* http://www.coderpanda.com/jms-domains-publish-subscribe-jms-messaging-domain/
4+
*/
5+
package com.test.third.topic;
6+
7+
import javax.jms.Destination;
8+
import javax.jms.JMSException;
9+
import javax.jms.MessageProducer;
10+
import javax.jms.ObjectMessage;
11+
import javax.jms.Session;
12+
import javax.jms.Topic;
13+
import javax.jms.TopicConnection;
14+
import javax.jms.TopicConnectionFactory;
15+
import javax.jms.TopicPublisher;
16+
import javax.jms.TopicSession;
17+
18+
import org.apache.activemq.ActiveMQConnection;
19+
import org.apache.activemq.ActiveMQConnectionFactory;
20+
21+
import com.test.common.EventMessage;
22+
23+
public class Publisher {
24+
25+
private TopicConnectionFactory factory = null;
26+
private TopicConnection topicConnection = null;
27+
private TopicSession topicSession = null;
28+
private TopicPublisher publisher = null;
29+
private Topic topic = null;
30+
31+
public void sendMessage(){
32+
try {
33+
factory = new ActiveMQConnectionFactory(
34+
ActiveMQConnection.DEFAULT_BROKER_URL);
35+
topicConnection = factory.createTopicConnection();
36+
topicConnection.start();
37+
topicSession = topicConnection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
38+
topic = topicSession.createTopic("SAMPLETOPIC1");
39+
publisher = topicSession.createPublisher(topic);
40+
EventMessage eventMessage = new EventMessage(1,"Send event object");
41+
//TextMessage message = session.createTextMessage();
42+
ObjectMessage objectMessage = topicSession.createObjectMessage(eventMessage);
43+
//message.setText("Hello ...This is a sample message..sending from FirstClient");
44+
objectMessage.setObject(eventMessage);
45+
//producer.send(message);
46+
publisher.publish(objectMessage);
47+
//System.out.println("Sent: " + message.getText());
48+
System.out.println("Sent: ");
49+
} catch (JMSException e) {
50+
// TODO Auto-generated catch block
51+
e.printStackTrace();
52+
}finally{
53+
try{
54+
topicSession.close();
55+
topicConnection.close();
56+
}catch (JMSException e) {
57+
// TODO Auto-generated catch block
58+
e.printStackTrace();
59+
}
60+
}
61+
}
62+
63+
public static void main(String[] args) {
64+
Publisher publisher = new Publisher();
65+
publisher.sendMessage();
66+
67+
}
68+
69+
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
package com.test.third.topic;
2+
3+
import javax.jms.Destination;
4+
import javax.jms.JMSException;
5+
import javax.jms.Message;
6+
import javax.jms.ObjectMessage;
7+
import javax.jms.Topic;
8+
import javax.jms.TopicConnection;
9+
import javax.jms.TopicConnectionFactory;
10+
import javax.jms.TopicSession;
11+
import javax.jms.TopicSubscriber;
12+
13+
import org.apache.activemq.ActiveMQConnection;
14+
import org.apache.activemq.ActiveMQConnectionFactory;
15+
16+
import com.test.common.EventMessage;
17+
18+
public class Subscriber1 {
19+
20+
private TopicConnectionFactory factory = null;
21+
private TopicConnection topicConnection = null;
22+
private TopicSession topicSession = null;
23+
private Destination destination = null;
24+
private TopicSubscriber subscriber = null;
25+
private Topic topic = null;
26+
27+
public void receiveMessage() {
28+
try {
29+
factory = new ActiveMQConnectionFactory(
30+
ActiveMQConnection.DEFAULT_BROKER_URL);
31+
topicConnection = factory.createTopicConnection();
32+
topicSession = topicConnection.createTopicSession(false, TopicSession.AUTO_ACKNOWLEDGE);
33+
topic = topicSession.createTopic("SAMPLETOPIC1");
34+
subscriber = topicSession.createSubscriber(topic);
35+
topicConnection.start();
36+
System.out.println("b4 receive");
37+
Message message = subscriber.receive();
38+
System.out.println("after receive");
39+
if (message instanceof ObjectMessage) {
40+
ObjectMessage objectMessage = (ObjectMessage)message;
41+
EventMessage eventMessage = (EventMessage)objectMessage.getObject();
42+
System.out.println("Received message @ sub1 is ----eventMessage.getMessageId()-------> " + eventMessage.getMessageId() + "-------eventMessage.getMessageText()--------" + eventMessage.getMessageText());
43+
}
44+
} catch (JMSException e) {
45+
// TODO Auto-generated catch block
46+
e.printStackTrace();
47+
} finally {
48+
try {
49+
topicSession.close();
50+
topicConnection.close();
51+
} catch (JMSException e) {
52+
// TODO Auto-generated catch block
53+
e.printStackTrace();
54+
}
55+
}
56+
57+
}
58+
59+
public static void main(String[] args) {
60+
Subscriber1 sub1 = new Subscriber1();
61+
sub1.receiveMessage();
62+
}
63+
64+
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
package com.test.third.topic;
2+
3+
import javax.jms.Destination;
4+
import javax.jms.JMSException;
5+
import javax.jms.Message;
6+
import javax.jms.ObjectMessage;
7+
import javax.jms.Topic;
8+
import javax.jms.TopicConnection;
9+
import javax.jms.TopicConnectionFactory;
10+
import javax.jms.TopicSession;
11+
import javax.jms.TopicSubscriber;
12+
13+
import org.apache.activemq.ActiveMQConnection;
14+
import org.apache.activemq.ActiveMQConnectionFactory;
15+
16+
import com.test.common.EventMessage;
17+
18+
public class Subscriber2 {
19+
20+
private TopicConnectionFactory factory = null;
21+
private TopicConnection topicConnection = null;
22+
private TopicSession topicSession = null;
23+
private Destination destination = null;
24+
private TopicSubscriber subscriber = null;
25+
private Topic topic = null;
26+
27+
public void receiveMessage() {
28+
try {
29+
factory = new ActiveMQConnectionFactory(
30+
ActiveMQConnection.DEFAULT_BROKER_URL);
31+
topicConnection = factory.createTopicConnection();
32+
topicSession = topicConnection.createTopicSession(false, TopicSession.AUTO_ACKNOWLEDGE);
33+
topic = topicSession.createTopic("SAMPLETOPIC1");
34+
subscriber = topicSession.createSubscriber(topic);
35+
topicConnection.start();
36+
System.out.println("b4 receive");
37+
Message message = subscriber.receive();
38+
System.out.println("after receive");
39+
if (message instanceof ObjectMessage) {
40+
ObjectMessage objectMessage = (ObjectMessage)message;
41+
EventMessage eventMessage = (EventMessage)objectMessage.getObject();
42+
System.out.println("Received message @ sub2 is ----eventMessage.getMessageId()-------> " + eventMessage.getMessageId() + "-------eventMessage.getMessageText()--------" + eventMessage.getMessageText());
43+
}
44+
} catch (JMSException e) {
45+
// TODO Auto-generated catch block
46+
e.printStackTrace();
47+
} finally {
48+
try {
49+
topicSession.close();
50+
topicConnection.close();
51+
} catch (JMSException e) {
52+
// TODO Auto-generated catch block
53+
e.printStackTrace();
54+
}
55+
}
56+
57+
}
58+
59+
public static void main(String[] args) {
60+
Subscriber2 sub2 = new Subscriber2();
61+
sub2.receiveMessage();
62+
}
63+
64+
}

0 commit comments

Comments
 (0)