package com.taobao.metamorphosis.client.extension.spring;
import java.util.Properties;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.FactoryBean;
import com.taobao.metamorphosis.client.MessageSessionFactory;
import com.taobao.metamorphosis.client.MetaClientConfig;
import com.taobao.metamorphosis.utils.ZkUtils.ZKConfig;
/**
* Base factory bean class to create message sessionfactory.
*
* @author dennis<killme2008@gmail.com>
* @since 1.4.5
* @param <T>
*/
public abstract class AbstractMetaqMessageSessionFactory<T extends MessageSessionFactory> implements FactoryBean,
DisposableBean {
protected MetaClientConfig metaClientConfig = new MetaClientConfig();
{
this.metaClientConfig.setZkConfig(new ZKConfig());
}
protected T sessionFactory;
@Override
public void destroy() throws Exception {
if (this.sessionFactory != null) {
this.sessionFactory.shutdown();
}
}
public int getRecoverThreadCount() {
return this.metaClientConfig.getRecoverThreadCount();
}
public void setRecoverThreadCount(int recoverThreadCount) {
this.metaClientConfig.setRecoverThreadCount(recoverThreadCount);
}
public long getRecoverMessageIntervalInMills() {
return this.metaClientConfig.getRecoverMessageIntervalInMills();
}
public void setRecoverMessageIntervalInMills(long recoverMessageIntervalInMills) {
this.metaClientConfig.setRecoverMessageIntervalInMills(recoverMessageIntervalInMills);
}
public ZKConfig getZkConfig() {
return this.metaClientConfig.getZkConfig();
}
public void setZkConfig(ZKConfig zkConfig) {
this.metaClientConfig.setZkConfig(zkConfig);
}
public String getServerUrl() {
return this.metaClientConfig.getServerUrl();
}
public void setServerUrl(String serverUrl) {
this.metaClientConfig.setServerUrl(serverUrl);
}
public void setPartitionsInfo(Properties partitionsInfo) {
this.metaClientConfig.setPartitionsInfo(partitionsInfo);
}
public Properties getPartitionsInfo() {
return this.metaClientConfig.getPartitionsInfo();
}
public MetaClientConfig getMetaClientConfig() {
return this.metaClientConfig;
}
public void setMetaClientConfig(MetaClientConfig metaClientConfig) {
this.metaClientConfig = metaClientConfig;
}
public String getZkRoot() {
return this.metaClientConfig.getZkRoot();
}
public void setZkRoot(String zkRoot) {
this.metaClientConfig.setZkRoot(zkRoot);
}
public boolean isZkEnable() {
return this.metaClientConfig.isZkEnable();
}
public void setZkEnable(boolean zkEnable) {
this.metaClientConfig.setZkEnable(zkEnable);
}
public String getZkConnect() {
return this.metaClientConfig.getZkConnect();
}
public void setZkConnect(String zkConnect) {
this.metaClientConfig.setZkConnect(zkConnect);
}
public int getZkSessionTimeoutMs() {
return this.metaClientConfig.getZkSessionTimeoutMs();
}
public void setZkSessionTimeoutMs(int zkSessionTimeoutMs) {
this.metaClientConfig.setZkSessionTimeoutMs(zkSessionTimeoutMs);
}
public int getZkConnectionTimeoutMs() {
return this.metaClientConfig.getZkConnectionTimeoutMs();
}
public void setZkConnectionTimeoutMs(int zkConnectionTimeoutMs) {
this.metaClientConfig.setZkConnectionTimeoutMs(zkConnectionTimeoutMs);
}
public int getZkSyncTimeMs() {
return this.metaClientConfig.getZkSyncTimeMs();
}
public void setZkSyncTimeMs(int zkSyncTimeMs) {
this.metaClientConfig.setZkSyncTimeMs(zkSyncTimeMs);
}
@Override
public boolean isSingleton() {
return true;
}
}