001
014
015 package com.liferay.portal.resiliency.spi.search;
016
017 import com.liferay.portal.kernel.messaging.Destination;
018 import com.liferay.portal.kernel.messaging.MessageBus;
019 import com.liferay.portal.kernel.nio.intraband.messaging.IntrabandBridgeMessageListener;
020 import com.liferay.portal.kernel.resiliency.spi.SPI;
021 import com.liferay.portal.kernel.resiliency.spi.SPIUtil;
022 import com.liferay.portal.kernel.search.SearchEngineUtil;
023
024 import java.rmi.RemoteException;
025
026 import java.util.Set;
027
028
031 public class SPISearchEngineConfigurator {
032
033 public void afterPropertiesSet() throws RemoteException {
034 if (!SPIUtil.isSPI()) {
035 return;
036 }
037
038 Set<String> searchEngineIds = SearchEngineUtil.getSearchEngineIds();
039
040 for (String searchEngineId : searchEngineIds) {
041 String destinationName =
042 SearchEngineUtil.getSearchWriterDestinationName(searchEngineId);
043
044 Destination destination = _messageBus.getDestination(
045 destinationName);
046
047 destination.unregisterMessageListeners();
048
049 SPI spi = SPIUtil.getSPI();
050
051 destination.register(
052 new IntrabandBridgeMessageListener(
053 spi.getRegistrationReference()));
054 }
055 }
056
057 public void setMessageBus(MessageBus messageBus) {
058 _messageBus = messageBus;
059 }
060
061 private MessageBus _messageBus;
062
063 }