package com.dianping.pigeon.remoting.http.adapter; import com.dianping.pigeon.log.LoggerLoader; import com.dianping.pigeon.remoting.provider.config.ProviderConfig; import com.dianping.pigeon.remoting.provider.publish.ServicePublisher; import com.dianping.pigeon.log.Logger; import java.util.HashMap; import java.util.Map; /** * Created by chenchongze on 16/1/20. */ public class HttpAdapterFactory { private static Logger logger = LoggerLoader.getLogger(HttpAdapterFactory.class); private static Map<String, HttpAdapter> httpAdapters = new HashMap<String, HttpAdapter>(); public static Map<String, HttpAdapter> getHttpAdapters() { return httpAdapters; } public static void registerHttpAdapter(String serviceName, HttpAdapter httpAdapter) { Map<String, ProviderConfig<?>> allServiceProviders = ServicePublisher.getAllServiceProviders(); if(!allServiceProviders.containsKey(serviceName)) { logger.warn("service " + serviceName + " not exists or not published!"); } httpAdapters.put(serviceName, httpAdapter); logger.info("register httpAdapter: " + httpAdapter.getClass().getCanonicalName() + " for service: " + serviceName); } public static void unregisterHttpAdapter(String serviceName) { httpAdapters.remove(serviceName); logger.warn("unregister httpAdapter for service: " + serviceName); } }