1
22
23 package com.liferay.portal.kernel.messaging;
24
25
31 public class InvokerMessageListener implements MessageListener {
32
33 public InvokerMessageListener(MessageListener messageListener) {
34 this(
35 messageListener,
36 Thread.currentThread().getContextClassLoader());
37 }
38
39 public InvokerMessageListener(
40 MessageListener messageListener, ClassLoader classLoader) {
41
42 _messageListener = messageListener;
43 _classLoader = classLoader;
44 }
45
46 public boolean equals(Object obj) {
47 InvokerMessageListener messageListenerInvoker =
48 (InvokerMessageListener)obj;
49
50 return _messageListener.equals(
51 messageListenerInvoker.getMessageListener());
52 }
53
54 public ClassLoader getClassLoader() {
55 return _classLoader;
56 }
57
58 public MessageListener getMessageListener() {
59 return _messageListener;
60 }
61
62 public int hashCode() {
63 return _messageListener.hashCode();
64 }
65
66 public void receive(Message message) {
67 Thread currentThread = Thread.currentThread();
68
69 ClassLoader contextClassLoader = currentThread.getContextClassLoader();
70
71 currentThread.setContextClassLoader(_classLoader);
72
73 try {
74 _messageListener.receive(message);
75 }
76 finally {
77 currentThread.setContextClassLoader(contextClassLoader);
78 }
79 }
80
81 private MessageListener _messageListener;
82 private ClassLoader _classLoader;
83
84 }