/* * Copyright 1999-2011 Alibaba Group. * * 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.alibaba.dubbo.config; import com.alibaba.dubbo.common.Constants; import com.alibaba.dubbo.config.support.Parameter; import com.alibaba.dubbo.rpc.InvokerListener; import com.alibaba.dubbo.rpc.support.ProtocolUtils; /** * AbstractConsumerConfig * * @see com.alibaba.dubbo.config.ReferenceConfig * @author william.liangf * @export */ public abstract class AbstractReferenceConfig extends AbstractInterfaceConfig { private static final long serialVersionUID = -2786526984373031126L; // ======== 引用缺省值,当引用属性未设置时使用该缺省值替代 ======== // 检查服务提供者是否存在 protected Boolean check; // 是否加载时即刻初始化 protected Boolean init; // 是否使用泛接口 protected String generic; // 优先从JVM内获取引用实例 protected Boolean injvm; // lazy create connection protected Boolean lazy; protected String reconnect; protected Boolean sticky; //stub是否支持event事件. //TODO slove merge problem protected Boolean stubevent ;//= Constants.DEFAULT_STUB_EVENT; // 版本 protected String version; // 服务分组 protected String group; public Boolean isCheck() { return check; } public void setCheck(Boolean check) { this.check = check; } public Boolean isInit() { return init; } public void setInit(Boolean init) { this.init = init; } @Parameter(excluded = true) public Boolean isGeneric() { return ProtocolUtils.isGeneric(generic); } public void setGeneric(Boolean generic) { if (generic != null) { this.generic = generic.toString(); } } public void setGeneric(String generic) { this.generic = generic; } public String getGeneric() { return generic; } /** * @return * @deprecated 通过scope进行判断,scope=local */ @Deprecated public Boolean isInjvm() { return injvm; } /** * @param injvm * @deprecated 通过scope设置,scope=local表示使用injvm协议. */ @Deprecated public void setInjvm(Boolean injvm) { this.injvm = injvm; } @Parameter(key = Constants.REFERENCE_FILTER_KEY, append = true) public String getFilter() { return super.getFilter(); } @Parameter(key = Constants.INVOKER_LISTENER_KEY, append = true) public String getListener() { return super.getListener(); } @Override public void setListener(String listener) { checkMultiExtension(InvokerListener.class, "listener", listener); super.setListener(listener); } @Parameter(key = Constants.LAZY_CONNECT_KEY) public Boolean getLazy() { return lazy; } public void setLazy(Boolean lazy) { this.lazy = lazy; } @Override public void setOnconnect(String onconnect) { if (onconnect != null && onconnect.length() >0){ this.stubevent = true; } super.setOnconnect(onconnect); } @Override public void setOndisconnect(String ondisconnect) { if (ondisconnect != null && ondisconnect.length() >0){ this.stubevent = true; } super.setOndisconnect(ondisconnect); } @Parameter(key = Constants.STUB_EVENT_KEY) public Boolean getStubevent() { return stubevent; } @Parameter(key = Constants.RECONNECT_KEY) public String getReconnect() { return reconnect; } public void setReconnect(String reconnect) { this.reconnect = reconnect; } @Parameter(key = Constants.CLUSTER_STICKY_KEY) public Boolean getSticky() { return sticky; } public void setSticky(Boolean sticky) { this.sticky = sticky; } public String getVersion() { return version; } public void setVersion(String version) { checkKey("version", version); this.version = version; } public String getGroup() { return group; } public void setGroup(String group) { checkKey("group", group); this.group = group; } }