
com.taobao.metamorphosis.utils.DiamondUtils Maven / Gradle / Ivy
/*
* (C) 2007-2012 Alibaba Group Holding Limited.
*
* 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.
* Authors:
* wuhua , boyan
*/
package com.taobao.metamorphosis.utils;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.taobao.metamorphosis.cluster.Partition;
import com.taobao.metamorphosis.utils.ZkUtils.ZKConfig;
/**
* ??diamond??????????
*
* @author boyan
* @Date 2011-4-25
*
*/
public class DiamondUtils {
public static final String DEFAULT_ZK_DATAID = "metamorphosis.zkConfig";
public static final String DEFAULT_PARTITIONS_DATAID = "metamorphosis.partitions";
static final Log log = LogFactory.getLog(DiamondUtils.class);
/**
* ??ȡzk???ã????û???׳?????ʱNPE
*
* @param diamondManager
* @param timeout
* @return
*/
// public static ZKConfig getZkConfig(final DiamondManager diamondManager,
// final long timeout) {
// final Properties props =
// diamondManager.getAvailablePropertiesConfigureInfomation(timeout);
// if (props != null) {
// log.info("??diamond????zk???ã?" + props);
// return getZkConfig(props);
// }
// return null;
// }
public static ZKConfig getZkConfig(final Properties props) {
if (props != null) {
boolean zkEnable = true;
if (!com.taobao.gecko.core.util.StringUtils.isBlank(props.getProperty("zk.zkEnable"))) {
zkEnable = Boolean.valueOf(props.getProperty("zk.zkEnable"));
}
String zkRoot = "/meta";
if (!com.taobao.gecko.core.util.StringUtils.isBlank(props.getProperty("zk.zkRoot"))) {
zkRoot = props.getProperty("zk.zkRoot");
}
final ZKConfig rt =
new ZKConfig(zkRoot, props.getProperty("zk.zkConnect"), Integer.parseInt(props
.getProperty("zk.zkSessionTimeoutMs")), Integer.parseInt(props
.getProperty("zk.zkConnectionTimeoutMs")), Integer.parseInt(props
.getProperty("zk.zkSyncTimeMs")), zkEnable);
return rt;
}
else {
throw new NullPointerException("Null zk config");
}
}
// public static void getPartitions(final DiamondManager diamondManager,
// final long timeout,
// final Map> partitionsMap) {
// Properties props = null;
// try {
// props =
// diamondManager.getAvailablePropertiesConfigureInfomation(timeout);
// }
// catch (final Exception e) {
// log.warn(e.getMessage());
// }
//
// log.info("??diamond????partitions???ã?" + props);
// getPartitions(props, partitionsMap);
// }
/** ??ȡijЩtopic????????????Ϣ(ijtopic??????Щ????) */
public static void getPartitions(final Properties properties, final Map> ret) {
log.info("??ʼ??????????????Ϣ");
final Map> map = new HashMap>();
if (properties != null) {
for (final Map.Entry
© 2015 - 2025 Weber Informatics LLC | Privacy Policy