001
014
015 package com.liferay.portlet.documentlibrary.messaging;
016
017 import com.liferay.portal.kernel.log.Log;
018 import com.liferay.portal.kernel.log.LogFactoryUtil;
019 import com.liferay.portal.kernel.messaging.BaseMessageListener;
020 import com.liferay.portal.kernel.messaging.Message;
021 import com.liferay.portal.kernel.messaging.MessageBusUtil;
022 import com.liferay.portal.kernel.repository.model.FileVersion;
023 import com.liferay.portal.util.PropsValues;
024
025
028 public abstract class BaseProcessorMessageListener extends BaseMessageListener {
029
030 @Override
031 protected void doReceive(Message message) throws Exception {
032 Object[] array = (Object[])message.getPayload();
033
034 FileVersion sourceFileVersion = (FileVersion)array[0];
035 FileVersion destinationFileVersion = (FileVersion)array[1];
036
037 try {
038 generate(sourceFileVersion, destinationFileVersion);
039 }
040 catch (Exception e) {
041 if (_log.isWarnEnabled()) {
042 _log.warn(
043 "Unable to process file version " +
044 destinationFileVersion.getFileVersionId(),
045 e);
046 }
047 }
048
049 if (PropsValues.DL_FILE_ENTRY_PROCESSORS_TRIGGER_SYNCHRONOUSLY) {
050 MessageBusUtil.sendMessage(
051 message.getResponseDestinationName(), message);
052 }
053 }
054
055 protected abstract void generate(
056 FileVersion sourceFileVersion, FileVersion destinationFileVersion)
057 throws Exception;
058
059 private static Log _log = LogFactoryUtil.getLog(
060 BaseProcessorMessageListener.class);
061
062 }