*/
package org.opendaylight.controller.cluster.raft;
+import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
import com.google.common.base.Supplier;
import com.google.common.base.Suppliers;
import java.util.concurrent.TimeUnit;
+import javax.annotation.Nonnull;
import org.opendaylight.controller.cluster.raft.policy.DefaultRaftPolicy;
import org.opendaylight.controller.cluster.raft.policy.RaftPolicy;
import org.slf4j.Logger;
private long electionTimeoutFactor = 2;
private String customRaftPolicyImplementationClass;
- Supplier<RaftPolicy> policySupplier = Suppliers.memoize(new PolicySupplier());
+ private final Supplier<RaftPolicy> policySupplier = Suppliers.memoize(new PolicySupplier());
+
+ private PeerAddressResolver peerAddressResolver = NoopPeerAddressResolver.INSTANCE;
public void setHeartBeatInterval(FiniteDuration heartBeatInterval) {
this.heartBeatInterval = heartBeatInterval;
this.customRaftPolicyImplementationClass = customRaftPolicyImplementationClass;
}
+ @Override
+ public String getCustomRaftPolicyImplementationClass() {
+ return customRaftPolicyImplementationClass;
+ }
+
@Override
public long getSnapshotBatchCount() {
return snapshotBatchCount;
try {
String className = DefaultConfigParamsImpl.this.customRaftPolicyImplementationClass;
LOG.info("Trying to use custom RaftPolicy {}", className);
- Class c = Class.forName(className);
+ Class<?> c = Class.forName(className);
RaftPolicy obj = (RaftPolicy)c.newInstance();
return obj;
} catch (Exception e) {
return DefaultRaftPolicy.INSTANCE;
}
}
+
+ @Override
+ public PeerAddressResolver getPeerAddressResolver() {
+ return peerAddressResolver;
+ }
+
+ public void setPeerAddressResolver(@Nonnull PeerAddressResolver peerAddressResolver) {
+ this.peerAddressResolver = Preconditions.checkNotNull(peerAddressResolver);
+ }
}