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