diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/state/InMemoryStateProvider.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/state/InMemoryStateProvider.java index 60fc22ed..73f54d12 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/state/InMemoryStateProvider.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/state/InMemoryStateProvider.java @@ -90,4 +90,15 @@ public class InMemoryStateProvider implements StateProviderInterface } } + + + /******************************************************************************* + ** Remove a block of data, under a key, from the state store. + *******************************************************************************/ + @Override + public void remove(AbstractStateKey key) + { + map.remove(key); + } + } diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/state/StateProviderInterface.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/state/StateProviderInterface.java index b2196746..1c5415bf 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/state/StateProviderInterface.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/state/StateProviderInterface.java @@ -52,4 +52,10 @@ public interface StateProviderInterface ** Get a block of data, under a key, from the state store. *******************************************************************************/ Optional get(Class type, AbstractStateKey key); + + /******************************************************************************* + ** Remove a block of data, under a key, from the state store. + *******************************************************************************/ + void remove(AbstractStateKey key); + } diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/state/TempFileStateProvider.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/state/TempFileStateProvider.java index b7f23768..b9f6ed5e 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/state/TempFileStateProvider.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/state/TempFileStateProvider.java @@ -30,6 +30,7 @@ import java.util.Optional; import com.kingsrook.qqq.backend.core.logging.QLogger; import com.kingsrook.qqq.backend.core.utils.JsonUtils; import org.apache.commons.io.FileUtils; +import static com.kingsrook.qqq.backend.core.logging.LogUtils.logPair; /******************************************************************************* @@ -110,6 +111,21 @@ public class TempFileStateProvider implements StateProviderInterface + /******************************************************************************* + ** Remove a block of data, under a key, from the state store. + *******************************************************************************/ + @Override + public void remove(AbstractStateKey key) + { + File file = getFile(key); + if(!file.delete()) + { + LOG.warn("Error deleting state-providing tempFile", logPair("file", file.getAbsolutePath())); + } + } + + + /******************************************************************************* ** Get the file referenced by a key *******************************************************************************/