Package com.taobao.tddl.jdbc.atom.config

Source Code of com.taobao.tddl.jdbc.atom.config.DiamondDbPasswdManager

/*(C) 2007-2012 Alibaba Group Holding Limited. 
*This program is free software; you can redistribute it and/or modify 
*it under the terms of the GNU General Public License version 2 as 
* published by the Free Software Foundation. 
* Authors: 
*   junyu <junyu@taobao.com> , shenxun <shenxun@taobao.com>, 
*   linxuan <linxuan@taobao.com> ,qihao <qihao@taobao.com>  
*/ 
package com.taobao.tddl.jdbc.atom.config;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Executors;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.taobao.tddl.common.TDDLConstant;
import com.taobao.tddl.common.config.ConfigDataHandler;
import com.taobao.tddl.common.config.ConfigDataHandlerFactory;
import com.taobao.tddl.common.config.ConfigDataListener;
import com.taobao.tddl.common.config.impl.DefaultConfigDataHandlerFactory;
import com.taobao.tddl.jdbc.atom.common.TAtomConfParser;
import com.taobao.tddl.jdbc.atom.common.TAtomConstants;

/**
* ���������Diamondʵ��
*
* @author qihao
*
*/
public class DiamondDbPasswdManager implements DbPasswdManager {
  private static Log logger = LogFactory
      .getLog(DiamondDbPasswdManager.class);
  private String passwdConfDataId;
  private ConfigDataHandlerFactory configFactory;
  private ConfigDataHandler passwdHandler;
  private volatile List<ConfigDataListener> passwdConfListener = new ArrayList<ConfigDataListener>();

  public void init() {
    configFactory = new DefaultConfigDataHandlerFactory();
    Map<String, String> config = new HashMap<String, String>();
    config.put("group", TAtomConstants.DEFAULT_DIAMOND_GROUP);
    passwdHandler = configFactory.getConfigDataHandlerWithListenerListCE(
        passwdConfDataId, passwdConfListener,
        Executors.newSingleThreadScheduledExecutor(), config);
  }

  public String getPasswd() {
    if (null != passwdHandler) {
      String passwdStr = passwdHandler.getData(TDDLConstant.DIAMOND_GET_DATA_TIMEOUT,ConfigDataHandler.FIRST_CACHE_THEN_SERVER_STRATEGY);
      return TAtomConfParser.parserPasswd(passwdStr);
    }
    logger.error("[getDataError] passwdConfig not init !");
    return null;
  }

  public void registerPasswdConfListener(ConfigDataListener Listener) {
    passwdConfListener.add(Listener);
  }

  public void setPasswdConfDataId(String passwdConfDataId) {
    this.passwdConfDataId = passwdConfDataId;
  }

  public void stopDbPasswdManager() {
    if (null != this.passwdHandler) {
      this.passwdHandler.closeUnderManager();
    }
  }
}
TOP

Related Classes of com.taobao.tddl.jdbc.atom.config.DiamondDbPasswdManager

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.