/**
* Dianping.com Inc.
* Copyright (c) 2003-2013 All Rights Reserved.
*/
package com.dianping.pigeon.remoting.http.invoker;
import java.util.Map;
import com.dianping.pigeon.config.ConfigManagerLoader;
import com.dianping.pigeon.remoting.http.HttpUtils;
import com.dianping.pigeon.remoting.invoker.Client;
import com.dianping.pigeon.remoting.invoker.ClientFactory;
import com.dianping.pigeon.remoting.invoker.client.ClientConfig;
import com.dianping.pigeon.remoting.invoker.client.ClientConfigFactory;
import com.dianping.pigeon.remoting.invoker.domain.ConnectInfo;
import com.dianping.pigeon.remoting.invoker.process.ResponseProcessor;
import com.dianping.pigeon.remoting.invoker.process.ResponseProcessorFactory;
public class HttpInvokerClientFactory implements ClientFactory {
private final static ResponseProcessor responseProcessor =
ResponseProcessorFactory.selectProcessor();
private final static ClientConfig clientConfig = ClientConfigFactory.createClientConfig(ConfigManagerLoader.getConfigManager());
@Override
public Client createClient(ConnectInfo connectInfo) {
return new HttpInvokerClient(clientConfig, connectInfo, responseProcessor);
}
@Override
public boolean support(ConnectInfo connectInfo) {
Map<String, Integer> serviceNames = connectInfo.getServiceNames();
if (serviceNames != null && !serviceNames.isEmpty()) {
String name = serviceNames.keySet().iterator().next();
if (name.startsWith(HttpUtils.URL_PREFIX)) {
return true;
}
}
return false;
}
}