1
14
15 package com.liferay.portal.kernel.scheduler.messaging;
16
17 import com.liferay.portal.kernel.messaging.Message;
18 import com.liferay.portal.kernel.messaging.MessageBusUtil;
19 import com.liferay.portal.kernel.messaging.MessageListener;
20 import com.liferay.portal.kernel.scheduler.SchedulerEngine;
21 import com.liferay.portal.kernel.util.GetterUtil;
22 import com.liferay.portal.kernel.util.StringPool;
23
24
30 public class SchedulerEventMessageListenerWrapper implements MessageListener {
31
32 public SchedulerEventMessageListenerWrapper(
33 MessageListener messageListener) {
34
35 _messageListener = messageListener;
36
37 String className = messageListener.getClass().getName();
38
39 String jobName = className;
40
41 if (className.length() > SchedulerEngine.JOB_NAME_MAX_LENGTH) {
42 jobName = className.substring(
43 0, SchedulerEngine.JOB_NAME_MAX_LENGTH);
44 }
45
46 String groupName = className;
47
48 if (className.length() > SchedulerEngine.GROUP_NAME_MAX_LENGTH) {
49 groupName = className.substring(
50 0, SchedulerEngine.GROUP_NAME_MAX_LENGTH);
51 }
52
53 _key = jobName.concat(StringPool.COLON).concat(groupName);
54 }
55
56 public void receive(Message message) {
57 String receiverKey = GetterUtil.getString(
58 message.getString(SchedulerEngine.RECEIVER_KEY));
59
60 if (receiverKey.equals(_key)) {
61 try{
62 _messageListener.receive(message);
63 }
64 finally {
65 if (message.getBoolean(SchedulerEngine.DISABLE)) {
66 String destinationName = message.getDestinationName();
67
68 MessageBusUtil.unregisterMessageListener(
69 destinationName, this);
70 }
71 }
72 }
73 }
74
75 private String _key;
76 private MessageListener _messageListener;
77
78 }