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.MessageBusUtil;
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.SearchEngineHelperUtil;
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 =
039 SearchEngineHelperUtil.getSearchEngineIds();
040
041 for (String searchEngineId : searchEngineIds) {
042 String destinationName =
043 SearchEngineHelperUtil.getSearchWriterDestinationName(
044 searchEngineId);
045
046 Destination destination = MessageBusUtil.getDestination(
047 destinationName);
048
049 destination.unregisterMessageListeners();
050
051 SPI spi = SPIUtil.getSPI();
052
053 destination.register(
054 new IntrabandBridgeMessageListener(
055 spi.getRegistrationReference()));
056 }
057 }
058
059 }