X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-clustering-commons%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fcommon%2Factor%2FAbstractUntypedPersistentActor.java;h=95ee21674a579ef262231eef71158a6371c4fc14;hp=36b2866210cadb84d9db0ab28c5a8137236254a7;hb=bd8beb1bfee9f421ad8f2d07b1424b21038234a2;hpb=531621aac4cff9d39cbd8668a53bdeba8a0e6d81 diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/AbstractUntypedPersistentActor.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/AbstractUntypedPersistentActor.java index 36b2866210..95ee21674a 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/AbstractUntypedPersistentActor.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/AbstractUntypedPersistentActor.java @@ -8,14 +8,16 @@ package org.opendaylight.controller.cluster.common.actor; -import akka.event.Logging; -import akka.event.LoggingAdapter; +import akka.japi.Procedure; +import akka.persistence.SnapshotSelectionCriteria; import akka.persistence.UntypedPersistentActor; +import org.opendaylight.controller.cluster.DataPersistenceProvider; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public abstract class AbstractUntypedPersistentActor extends UntypedPersistentActor { - protected final LoggingAdapter LOG = - Logging.getLogger(getContext().system(), this); + protected final Logger LOG = LoggerFactory.getLogger(getClass()); public AbstractUntypedPersistentActor() { if(LOG.isDebugEnabled()) { @@ -67,4 +69,71 @@ public abstract class AbstractUntypedPersistentActor extends UntypedPersistentAc } unhandled(message); } + + protected class PersistentDataProvider implements DataPersistenceProvider { + + public PersistentDataProvider(){ + + } + + @Override + public boolean isRecoveryApplicable() { + return true; + } + + @Override + public void persist(T o, Procedure procedure) { + AbstractUntypedPersistentActor.this.persist(o, procedure); + } + + @Override + public void saveSnapshot(Object o) { + AbstractUntypedPersistentActor.this.saveSnapshot(o); + } + + @Override + public void deleteSnapshots(SnapshotSelectionCriteria criteria) { + AbstractUntypedPersistentActor.this.deleteSnapshots(criteria); + } + + @Override + public void deleteMessages(long sequenceNumber) { + AbstractUntypedPersistentActor.this.deleteMessages(sequenceNumber); + } + } + + protected class NonPersistentDataProvider implements DataPersistenceProvider { + + public NonPersistentDataProvider(){ + + } + + @Override + public boolean isRecoveryApplicable() { + return false; + } + + @Override + public void persist(T o, Procedure procedure) { + try { + procedure.apply(o); + } catch (Exception e) { + LOG.error("An unexpected error occurred", e); + } + } + + @Override + public void saveSnapshot(Object o) { + } + + @Override + public void deleteSnapshots(SnapshotSelectionCriteria criteria) { + + } + + @Override + public void deleteMessages(long sequenceNumber) { + + } + } }