in stream/distributedlog/core/src/main/java/org/apache/distributedlog/impl/metadata/BKDLConfig.java [350:398]
public void deserialize(byte[] data) throws IOException {
BKDLConfigFormat configFormat = new BKDLConfigFormat();
try {
TMemoryInputTransport transport = new TMemoryInputTransport(data);
TJSONProtocol protocol = new TJSONProtocol(transport);
configFormat.read(protocol);
} catch (TException e) {
throw new IOException("Failed to deserialize data '"
+ new String(data, UTF_8) + "' : ", e);
}
// bookkeeper cluster settings
if (configFormat.isSetBkZkServers()) {
bkZkServersForWriter = configFormat.getBkZkServers();
}
if (configFormat.isSetBkZkServersForReader()) {
bkZkServersForReader = configFormat.getBkZkServersForReader();
} else {
bkZkServersForReader = bkZkServersForWriter;
}
if (configFormat.isSetBkLedgersPath()) {
bkLedgersPath = configFormat.getBkLedgersPath();
}
// dl zookeeper cluster settings
if (configFormat.isSetDlZkServersForWriter()) {
dlZkServersForWriter = configFormat.getDlZkServersForWriter();
}
if (configFormat.isSetDlZkServersForReader()) {
dlZkServersForReader = configFormat.getDlZkServersForReader();
} else {
dlZkServersForReader = dlZkServersForWriter;
}
// dl settings
sanityCheckTxnID = !configFormat.isSetSanityCheckTxnID() || configFormat.isSanityCheckTxnID();
encodeRegionID = configFormat.isSetEncodeRegionID() && configFormat.isEncodeRegionID();
if (configFormat.isSetAclRootPath()) {
aclRootPath = configFormat.getAclRootPath();
}
if (configFormat.isSetFirstLogSegmentSeqNo()) {
firstLogSegmentSeqNo = configFormat.getFirstLogSegmentSeqNo();
}
isFederatedNamespace = configFormat.isSetFederatedNamespace() && configFormat.isFederatedNamespace();
// Validate the settings
if (null == bkZkServersForWriter || null == bkZkServersForReader || null == bkLedgersPath
|| null == dlZkServersForWriter || null == dlZkServersForReader) {
throw new IOException("Missing zk/bk settings in BKDL Config : " + new String(data, UTF_8));
}
}