import static java.util.Objects.requireNonNull;
-import com.google.common.base.Optional;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.util.Collection;
import java.util.Objects;
+import java.util.Optional;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.BiFunction;
import java.util.stream.Stream;
import javax.annotation.PreDestroy;
import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
import org.opendaylight.genius.datastoreutils.SingleTransactionDataBroker;
import org.opendaylight.infrautils.caches.CacheProvider;
+import org.opendaylight.mdsal.binding.api.ClusteredDataTreeChangeListener;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.binding.api.DataObjectModification;
+import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
+import org.opendaylight.mdsal.binding.api.DataTreeModification;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.mdsal.common.api.ReadFailedException;
import org.opendaylight.yangtools.concepts.ListenerRegistration;
import org.opendaylight.yangtools.yang.binding.DataObject;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
requireNonNull(cacheProvider, "cacheProvider");
cache = CacheBuilder.newBuilder().build(new CacheLoader<K, Optional<V>>() {
@Override
- public Optional<V> load(K key) throws ReadFailedException {
+ public Optional<V> load(K key) throws ReadFailedException, ExecutionException, InterruptedException {
return broker.syncReadOptional(datastoreType, instanceIdFunction.apply(key));
}
});
case WRITE:
case SUBTREE_MODIFIED:
V dataAfter = rootNode.getDataAfter();
- cache.put(keyFunction.apply(path, dataAfter), Optional.fromNullable(dataAfter));
+ cache.put(keyFunction.apply(path, dataAfter), Optional.ofNullable(dataAfter));
added(path, dataAfter);
break;
case DELETE:
}
};
- listenerRegistration = dataBroker.registerDataTreeChangeListener(new DataTreeIdentifier<>(
+ listenerRegistration = dataBroker.registerDataTreeChangeListener(DataTreeIdentifier.create(
datastoreType, listenerRegistrationPath), dataObjectListener);
}