package fi.otavanopisto.muikku.plugins.search; import java.util.Iterator; import java.util.logging.Logger; import javax.annotation.PreDestroy; import javax.enterprise.inject.Any; import javax.enterprise.inject.Instance; import javax.inject.Inject; import fi.otavanopisto.muikku.plugin.PluginDescriptor; import fi.otavanopisto.muikku.search.SearchIndexUpdater; import fi.otavanopisto.muikku.search.SearchProvider; public class SearchPluginDescriptor implements PluginDescriptor { @Inject @Any private Instance<SearchProvider> searchProviders; @Inject @Any private Instance<SearchIndexUpdater> searchIndexUpdaters; @Inject private Logger logger; @Override public void init() { Iterator<SearchIndexUpdater> updaterIterator = searchIndexUpdaters.iterator(); while(updaterIterator.hasNext()){ SearchIndexUpdater updater = updaterIterator.next(); logger.info("Initializing search index updater: " + updater.getName()); updater.init(); } Iterator<SearchProvider> providerIterator = searchProviders.iterator(); while(providerIterator.hasNext()){ SearchProvider provider = providerIterator.next(); logger.info("Initializing search provider: " + provider.getName()); provider.init(); } } @PreDestroy public void deinit() { Iterator<SearchProvider> searchProviderIterator = searchProviders.iterator(); while(searchProviderIterator.hasNext()){ SearchProvider provider = searchProviderIterator.next(); logger.info("Deinitializing search provider: " + provider.getName()); provider.deinit(); } Iterator<SearchIndexUpdater> updaterProviderIterator = searchIndexUpdaters.iterator(); while(updaterProviderIterator.hasNext()){ SearchIndexUpdater updater = updaterProviderIterator.next(); logger.info("Deinitializing search index updater: " + updater.getName()); updater.deinit(); } } @Override public String getName() { return "search"; } }