/** * Dianping.com Inc. * Copyright (c) 2003-2013 All Rights Reserved. */ package com.dianping.pigeon.remoting.invoker; import java.util.List; import com.dianping.pigeon.extension.ExtensionLoader; import com.dianping.pigeon.remoting.invoker.domain.ConnectInfo; import com.dianping.pigeon.remoting.invoker.exception.ServiceUnavailableException; /** * * @author xiangwu * @Sep 11, 2013 * */ public class ClientSelector { public static Client selectClient(ConnectInfo connectInfo) { List<ClientFactory> clientFactories = ExtensionLoader.getExtensionList(ClientFactory.class); for (ClientFactory clientFactory : clientFactories) { if (clientFactory.support(connectInfo)) { return clientFactory.createClient(connectInfo); } } throw new ServiceUnavailableException("no available client been created from client factory:" + connectInfo); } }