package org.elasticsearch.discovery; import com.google.common.collect.Lists; import java.util.Iterator; import java.util.List; import java.util.ServiceLoader; public class DiscoveryFactory { protected static final DiscoveryModule[] discoveries; protected static DiscoveryModule defaultDiscovery; static { List<DiscoveryModule> discos = Lists.newArrayList(); ServiceLoader<DiscoveryModule> loader = ServiceLoader.load(DiscoveryModule.class); Iterator<DiscoveryModule> it = loader.iterator(); while (it.hasNext()) { DiscoveryModule disco = it.next(); discos.add(disco); if (defaultDiscovery == null) { defaultDiscovery = disco; } } discoveries = discos.toArray(new DiscoveryModule[discos.size()]); } public static DiscoveryModule defaultDiscovery() { return defaultDiscovery; } public static DiscoveryModule[] discoveries() { return discoveries; } }