blob: f5ebd6bfa64750bbac89879a026c7d569f4ac7ef [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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
*
* @export
* @see com.alibaba.dubbo.config.ReferenceConfig
*/
public abstract class AbstractReferenceConfig extends AbstractInterfaceConfig {
private static final long serialVersionUID = -2786526984373031126L;
// ======== Reference config default values, will take effect if reference's attribute is not set ========
// check if service provider exists
protected Boolean check;
// whether to eagle-init
protected Boolean init;
// whether to use generic interface
protected String generic;
// whether to find reference's instance from the current JVM
protected Boolean injvm;
// lazy create connection
protected Boolean lazy;
protected String reconnect;
protected Boolean sticky;
// whether to support event in stub. //TODO solve merge problem
protected Boolean stubevent;//= Constants.DEFAULT_STUB_EVENT;
// version
protected String version;
// group
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 String getGeneric() {
return generic;
}
public void setGeneric(String generic) {
this.generic = generic;
}
/**
* @return
* @deprecated instead, use scope to judge if it's in jvm, scope=local
*/
@Deprecated
public Boolean isInjvm() {
return injvm;
}
/**
* @param injvm
* @deprecated instead, use scope to judge if it's in jvm, scope=local
*/
@Deprecated
public void setInjvm(Boolean injvm) {
this.injvm = injvm;
}
@Override
@Parameter(key = Constants.REFERENCE_FILTER_KEY, append = true)
public String getFilter() {
return super.getFilter();
}
@Override
@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;
}
}