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.setPayload(reportResultContainer);
65
66 MessageBusUtil.sendMessage(
67 message.getResponseDestination(), message);
68 }
69 }
70
71 private static final Log _log =
72 LogFactoryUtil.getLog(ReportCompilerRequestMessageListener.class);
73
74 private ReportEngine _reportEngine;
75 private ReportResultContainer _reportResultContainer;
76
77 }