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