1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.log4j.core.net.jms;
18
19 import java.io.Serializable;
20
21 import javax.jms.JMSException;
22 import javax.jms.ObjectMessage;
23 import javax.naming.Context;
24 import javax.naming.NameNotFoundException;
25 import javax.naming.NamingException;
26
27 import org.apache.logging.log4j.LogManager;
28 import org.apache.logging.log4j.Logger;
29 import org.apache.logging.log4j.core.LogEvent;
30 import org.apache.logging.log4j.core.LogEventListener;
31
32
33
34
35 public abstract class AbstractJmsReceiver extends LogEventListener implements javax.jms.MessageListener {
36
37
38
39
40 protected Logger logger = LogManager.getLogger(this.getClass().getName());
41
42
43
44
45
46 @Override
47 public void onMessage(final javax.jms.Message message) {
48 try {
49 if (message instanceof ObjectMessage) {
50 final ObjectMessage objectMessage = (ObjectMessage) message;
51 final Serializable object = objectMessage.getObject();
52 if (object instanceof LogEvent) {
53 log((LogEvent) object);
54 } else {
55 logger.warn("Received message is of type " + object.getClass().getName() + ", was expecting LogEvent.");
56 }
57 } else {
58 logger.warn("Received message is of type " + message.getJMSType()
59 + ", was expecting ObjectMessage.");
60 }
61 } catch (final JMSException jmse) {
62 logger.error("Exception thrown while processing incoming message.",
63 jmse);
64 }
65 }
66
67
68
69
70
71
72
73
74 protected Object lookup(final Context ctx, final String name) throws NamingException {
75 try {
76 return ctx.lookup(name);
77 } catch (final NameNotFoundException e) {
78 logger.error("Could not find name [" + name + "].");
79 throw e;
80 }
81 }
82
83 }