1
19
20 package com.liferay.portal.kernel.bi.reporting.messaging;
21
22 import com.liferay.portal.kernel.bi.reporting.ReportEngine;
23 import com.liferay.portal.kernel.bi.reporting.ReportGenerationException;
24 import com.liferay.portal.kernel.bi.reporting.ReportRequest;
25 import com.liferay.portal.kernel.bi.reporting.ReportResultContainer;
26 import com.liferay.portal.kernel.log.Log;
27 import com.liferay.portal.kernel.log.LogFactoryUtil;
28 import com.liferay.portal.kernel.messaging.Message;
29 import com.liferay.portal.kernel.messaging.MessageBusUtil;
30 import com.liferay.portal.kernel.messaging.MessageListener;
31
32
39 public class ReportCompilerRequestMessageListener implements MessageListener {
40
41 public ReportCompilerRequestMessageListener(
42 ReportEngine reportEngine,
43 ReportResultContainer reportResultContainer) {
44
45 _reportEngine = reportEngine;
46 _reportResultContainer = reportResultContainer;
47 }
48
49 public void receive(Message message) {
50 ReportRequest reportRequest = (ReportRequest)message.getPayload();
51
52 ReportResultContainer reportResultContainer =
53 _reportResultContainer.clone(reportRequest.getReportName());
54
55 try {
56 _reportEngine.compile(reportRequest);
57 }
58 catch (ReportGenerationException rge) {
59 _log.error("Unable to compile report", rge);
60
61 reportResultContainer.setReportGenerationException(rge);
62 }
63 finally {
64 Message responseMessage = MessageBusUtil.createResponseMessage(
65 message, reportResultContainer);
66
67 responseMessage.setPayload(reportResultContainer);
68
69 MessageBusUtil.sendMessage(
70 responseMessage.getDestination(), responseMessage);
71 }
72 }
73
74 private static final Log _log =
75 LogFactoryUtil.getLog(ReportCompilerRequestMessageListener.class);
76
77 private ReportEngine _reportEngine;
78 private ReportResultContainer _reportResultContainer;
79
80 }