/** * Copyright (c) 2000-present Liferay, Inc. All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ package com.liferay.portal.kernel.workflow.messaging; import com.liferay.portal.kernel.log.Log; import com.liferay.portal.kernel.log.LogFactoryUtil; import com.liferay.portal.kernel.messaging.DestinationEventListener; import com.liferay.portal.kernel.messaging.DestinationNames; import com.liferay.portal.kernel.messaging.MessageBusUtil; import com.liferay.portal.kernel.messaging.MessageListener; /** * @author Michael C. Han */ public class DefaultWorkflowDestinationEventListener implements DestinationEventListener { @Override public void messageListenerRegistered( String destinationName, MessageListener messageListener) { if (_log.isInfoEnabled()) { _log.info( "Unregistering default workflow engine " + _workflowEngineName); } if (!isProceed(destinationName, messageListener)) { return; } MessageBusUtil.unregisterMessageListener( DestinationNames.WORKFLOW_COMPARATOR, _workflowComparatorFactoryListener); MessageBusUtil.unregisterMessageListener( DestinationNames.WORKFLOW_DEFINITION, _workflowDefinitionManagerListener); MessageBusUtil.unregisterMessageListener( DestinationNames.WORKFLOW_ENGINE, _workflowEngineManagerListener); MessageBusUtil.unregisterMessageListener( DestinationNames.WORKFLOW_INSTANCE, _workflowInstanceManagerListener); MessageBusUtil.unregisterMessageListener( DestinationNames.WORKFLOW_LOG, _workflowLogManagerListener); MessageBusUtil.unregisterMessageListener( DestinationNames.WORKFLOW_TASK, _workflowTaskManagerListener); } @Override public void messageListenerUnregistered( String destinationName, MessageListener messageListener) { if (!isProceed(destinationName, messageListener)) { return; } if (_log.isInfoEnabled()) { _log.info( "Registering default workflow engine " + _workflowEngineName); } MessageBusUtil.registerMessageListener( DestinationNames.WORKFLOW_COMPARATOR, _workflowComparatorFactoryListener); MessageBusUtil.registerMessageListener( DestinationNames.WORKFLOW_DEFINITION, _workflowDefinitionManagerListener); MessageBusUtil.registerMessageListener( DestinationNames.WORKFLOW_ENGINE, _workflowEngineManagerListener); MessageBusUtil.registerMessageListener( DestinationNames.WORKFLOW_INSTANCE, _workflowInstanceManagerListener); MessageBusUtil.registerMessageListener( DestinationNames.WORKFLOW_LOG, _workflowLogManagerListener); MessageBusUtil.registerMessageListener( DestinationNames.WORKFLOW_TASK, _workflowTaskManagerListener); } public void setWorkflowComparatorFactoryListener( MessageListener workflowComparatorFactoryListener) { _workflowComparatorFactoryListener = workflowComparatorFactoryListener; } public void setWorkflowDefinitionManagerListener( MessageListener workflowDefinitionManagerListener) { _workflowDefinitionManagerListener = workflowDefinitionManagerListener; } public void setWorkflowEngineManagerListener( MessageListener workflowEngineManagerListener) { _workflowEngineManagerListener = workflowEngineManagerListener; } public void setWorkflowEngineName(String workflowEngineName) { _workflowEngineName = workflowEngineName; } public void setWorkflowInstanceManagerListener( MessageListener workflowInstanceManagerListener) { _workflowInstanceManagerListener = workflowInstanceManagerListener; } public void setWorkflowLogManagerListener( MessageListener workflowLogManagerListener) { _workflowLogManagerListener = workflowLogManagerListener; } public void setWorkflowTaskManagerListener( MessageListener workflowTaskManagerListener) { _workflowTaskManagerListener = workflowTaskManagerListener; } protected boolean isProceed( String destinationName, MessageListener messageListener) { if (messageListener.equals(_workflowEngineManagerListener)) { return false; } else { return true; } } private static final Log _log = LogFactoryUtil.getLog( DefaultWorkflowDestinationEventListener.class); private MessageListener _workflowComparatorFactoryListener; private MessageListener _workflowDefinitionManagerListener; private MessageListener _workflowEngineManagerListener; private String _workflowEngineName; private MessageListener _workflowInstanceManagerListener; private MessageListener _workflowLogManagerListener; private MessageListener _workflowTaskManagerListener; }