This is an automated email from the ASF dual-hosted git repository.
exceptionfactory pushed a commit to branch support/nifi-1.x
in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/support/nifi-1.x by this push:
new ca05da490a NIFI-11595 Backported StateMap.getStateVersion() for
StateProviders
ca05da490a is described below
commit ca05da490a54a80e21e10ed2073b4921f39d8809
Author: exceptionfactory <[email protected]>
AuthorDate: Wed Sep 20 14:17:00 2023 -0500
NIFI-11595 Backported StateMap.getStateVersion() for StateProviders
Signed-off-by: David Handermann <[email protected]>
---
.../java/org/apache/nifi/components/state/StateMap.java | 13 +++++++++++++
.../state/providers/zookeeper/ZooKeeperStateProvider.java | 1 +
2 files changed, 14 insertions(+)
diff --git
a/nifi-api/src/main/java/org/apache/nifi/components/state/StateMap.java
b/nifi-api/src/main/java/org/apache/nifi/components/state/StateMap.java
index 4d67164fa4..3defe51915 100644
--- a/nifi-api/src/main/java/org/apache/nifi/components/state/StateMap.java
+++ b/nifi-api/src/main/java/org/apache/nifi/components/state/StateMap.java
@@ -18,6 +18,7 @@
package org.apache.nifi.components.state;
import java.util.Map;
+import java.util.Optional;
/**
* Provides a representation of a component's state at some point in time.
@@ -31,8 +32,20 @@ public interface StateMap {
*
* @return the version associated with the state
*/
+ @Deprecated
long getVersion();
+ /**
+ * Get state version is not guaranteed to be numeric, but can be used to
compare against an expected version.
+ * The default implementation uses the available version number and
considers -1 as indicating an empty version
+ *
+ * @return State version or empty when not known
+ */
+ default Optional<String> getStateVersion() {
+ final long version = getVersion();
+ return version == -1 ? Optional.empty() :
Optional.of(String.valueOf(version));
+ }
+
/**
* Returns the value associated with the given key
*
diff --git
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/state/providers/zookeeper/ZooKeeperStateProvider.java
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/state/providers/zookeeper/ZooKeeperStateProvider.java
index 747aa56ae6..a201abb13d 100644
---
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/state/providers/zookeeper/ZooKeeperStateProvider.java
+++
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/state/providers/zookeeper/ZooKeeperStateProvider.java
@@ -64,6 +64,7 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import java.util.Properties;
import java.util.Set;
import java.util.concurrent.TimeUnit;