/* * Copyright 2009-2016 Weibo, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.weibo.api.motan.config.springsupport; import com.weibo.api.motan.config.BasicRefererInterfaceConfig; import com.weibo.api.motan.config.ProtocolConfig; import com.weibo.api.motan.config.RegistryConfig; import com.weibo.api.motan.config.springsupport.util.SpringBeanUtil; import org.springframework.beans.BeansException; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.BeanFactoryAware; import org.springframework.beans.factory.BeanNameAware; import org.springframework.beans.factory.InitializingBean; import java.util.Collections; import java.util.List; /** * @author fld * <p> * Created by fld on 16/5/13. */ public class BasicRefererConfigBean extends BasicRefererInterfaceConfig implements BeanNameAware, InitializingBean, BeanFactoryAware { private String protocolNames; private String registryNames; private BeanFactory beanFactory; @Override public void setBeanName(String name) { setId(name); MotanNamespaceHandler.basicRefererConfigDefineNames.add(name); } public void setProtocol(String protocolNames) { this.protocolNames = protocolNames; } public void setRegistry(String registryNames) { this.registryNames = registryNames; } @Override public void afterPropertiesSet() throws Exception { setRegistries(extractRegistries(registryNames, beanFactory)); setProtocols(extractProtocols(protocolNames, beanFactory)); } public List<ProtocolConfig> extractProtocols(String protocols, BeanFactory beanFactory) { if (protocols != null && protocols.length() > 0) { List<ProtocolConfig> protocolConfigList = SpringBeanUtil.getMultiBeans(beanFactory, protocols, SpringBeanUtil.COMMA_SPLIT_PATTERN, ProtocolConfig.class); return protocolConfigList; } else { return null; } } public List<RegistryConfig> extractRegistries(String registries, BeanFactory beanFactory) { if (registries != null && registries.length() > 0) { List<RegistryConfig> registryConfigList = SpringBeanUtil.getMultiBeans(beanFactory, registries, SpringBeanUtil.COMMA_SPLIT_PATTERN, RegistryConfig.class); return registryConfigList; } else { return null; } } @Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException { this.beanFactory = beanFactory; } public void setCheck(boolean value) { setCheck(String.valueOf(value)); } public void setAccessLog(boolean value) { setAccessLog(String.valueOf(value)); } }