001
014
015 package com.liferay.portal.kernel.workflow.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.BaseDestinationEventListener;
020 import com.liferay.portal.kernel.messaging.DestinationNames;
021 import com.liferay.portal.kernel.messaging.MessageBusUtil;
022 import com.liferay.portal.kernel.messaging.MessageListener;
023
024
027 public class DefaultWorkflowDestinationEventListener
028 extends BaseDestinationEventListener {
029
030 public void messageListenerRegistered(
031 String destinationName, MessageListener messageListener) {
032
033 if (_log.isInfoEnabled()) {
034 _log.info(
035 "Unregistering default workflow engine " + _workflowEngineName);
036 }
037
038 if (!isProceed(destinationName, messageListener)) {
039 return;
040 }
041
042 MessageBusUtil.unregisterMessageListener(
043 DestinationNames.WORKFLOW_DEFINITION,
044 _workflowDefinitionManagerListener);
045
046 MessageBusUtil.unregisterMessageListener(
047 DestinationNames.WORKFLOW_ENGINE, _workflowEngineManagerListener);
048
049 MessageBusUtil.unregisterMessageListener(
050 DestinationNames.WORKFLOW_INSTANCE,
051 _workflowInstanceManagerListener);
052
053 MessageBusUtil.unregisterMessageListener(
054 DestinationNames.WORKFLOW_LOG, _workflowLogManagerListener);
055
056 MessageBusUtil.unregisterMessageListener(
057 DestinationNames.WORKFLOW_TASK, _workflowTaskManagerListener);
058 }
059
060 public void messageListenerUnregistered(
061 String destinationName, MessageListener messageListener) {
062
063 if (!isProceed(destinationName, messageListener)) {
064 return;
065 }
066
067 if (_log.isInfoEnabled()) {
068 _log.info(
069 "Registering default workflow engine " + _workflowEngineName);
070 }
071
072 MessageBusUtil.registerMessageListener(
073 DestinationNames.WORKFLOW_DEFINITION,
074 _workflowDefinitionManagerListener);
075
076 MessageBusUtil.registerMessageListener(
077 DestinationNames.WORKFLOW_ENGINE, _workflowEngineManagerListener);
078
079 MessageBusUtil.registerMessageListener(
080 DestinationNames.WORKFLOW_INSTANCE,
081 _workflowInstanceManagerListener);
082
083 MessageBusUtil.registerMessageListener(
084 DestinationNames.WORKFLOW_LOG, _workflowLogManagerListener);
085
086 MessageBusUtil.registerMessageListener(
087 DestinationNames.WORKFLOW_TASK, _workflowTaskManagerListener);
088 }
089
090 public void setWorkflowDefinitionManagerListener(
091 MessageListener workflowDefinitionManagerListener) {
092
093 _workflowDefinitionManagerListener = workflowDefinitionManagerListener;
094 }
095
096 public void setWorkflowEngineManagerListener(
097 MessageListener workflowEngineManagerListener) {
098
099 _workflowEngineManagerListener = workflowEngineManagerListener;
100 }
101
102 public void setWorkflowEngineName(String workflowEngineName) {
103 _workflowEngineName = workflowEngineName;
104 }
105
106 public void setWorkflowInstanceManagerListener(
107 MessageListener workflowInstanceManagerListener) {
108
109 _workflowInstanceManagerListener = workflowInstanceManagerListener;
110 }
111
112 public void setWorkflowLogManagerListener(
113 MessageListener workflowLogManagerListener) {
114
115 _workflowLogManagerListener = workflowLogManagerListener;
116 }
117
118 public void setWorkflowTaskManagerListener(
119 MessageListener workflowTaskManagerListener) {
120
121 _workflowTaskManagerListener = workflowTaskManagerListener;
122 }
123
124 protected boolean isProceed(
125 String destinationName, MessageListener messageListener) {
126
127 if (messageListener.equals(_workflowEngineManagerListener)) {
128 return false;
129 }
130 else {
131 return true;
132 }
133 }
134
135 private static final Log _log = LogFactoryUtil.getLog(
136 DefaultWorkflowDestinationEventListener.class);
137
138 private MessageListener _workflowDefinitionManagerListener;
139 private MessageListener _workflowEngineManagerListener;
140 private String _workflowEngineName;
141 private MessageListener _workflowInstanceManagerListener;
142 private MessageListener _workflowLogManagerListener;
143 private MessageListener _workflowTaskManagerListener;
144
145 }