diff --git a/neptune-tinkerpop/.gitignore b/neptune-tinkerpop/.gitignore
index 8ee4623..8fbc6ee 100644
--- a/neptune-tinkerpop/.gitignore
+++ b/neptune-tinkerpop/.gitignore
@@ -1,2 +1,3 @@
*.class
target/
+*.kryo
\ No newline at end of file
diff --git a/neptune-tinkerpop/3.4.13/pom.xml b/neptune-tinkerpop/3.7.2/pom.xml
similarity index 90%
rename from neptune-tinkerpop/3.4.13/pom.xml
rename to neptune-tinkerpop/3.7.2/pom.xml
index 4a26bce..1ac56c6 100644
--- a/neptune-tinkerpop/3.4.13/pom.xml
+++ b/neptune-tinkerpop/3.7.2/pom.xml
@@ -17,18 +17,17 @@
org.apache.tinkerpop
gremlin-core
- 3.4.13
+ 3.7.2
org.apache.tinkerpop
tinkergraph-gremlin
- 3.4.13
+ 3.7.2
org.apache.tinkerpop
gremlin-test
- 3.4.13
+ 3.7.2
-
diff --git a/neptune-tinkerpop/3.4.13/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/HasContainer.java b/neptune-tinkerpop/3.7.2/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/HasContainer.java
similarity index 97%
rename from neptune-tinkerpop/3.4.13/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/HasContainer.java
rename to neptune-tinkerpop/3.7.2/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/HasContainer.java
index e349b96..88f82d3 100644
--- a/neptune-tinkerpop/3.4.13/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/HasContainer.java
+++ b/neptune-tinkerpop/3.7.2/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/HasContainer.java
@@ -21,6 +21,7 @@
import org.apache.tinkerpop.gremlin.process.traversal.Compare;
import org.apache.tinkerpop.gremlin.process.traversal.Contains;
import org.apache.tinkerpop.gremlin.process.traversal.P;
+import org.apache.tinkerpop.gremlin.process.traversal.PBiPredicate;
import org.apache.tinkerpop.gremlin.structure.Element;
import org.apache.tinkerpop.gremlin.structure.Property;
import org.apache.tinkerpop.gremlin.structure.T;
@@ -98,7 +99,7 @@ protected boolean testLabel(final Element element) {
// add comparison predicates to support the multi-label syntax `label1::label2::label3`
- class LabelEquals implements BiPredicate {
+ class LabelEquals implements PBiPredicate {
public boolean test(String label, String otherLabel) {
if (label == null) return false;
for (String partialLabel: label.split(LABEL_DELIMITER)) {
@@ -110,7 +111,7 @@ public boolean test(String label, String otherLabel) {
}
}
- class LabelWithin implements BiPredicate> {
+ class LabelWithin implements PBiPredicate> {
public boolean test(String label, List labels) {
if (label == null) return false;
for (String partialLabel: label.split(LABEL_DELIMITER)) {
diff --git a/neptune-tinkerpop/3.4.13/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasLabelTest.java b/neptune-tinkerpop/3.7.2/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasLabelTest.java
similarity index 100%
rename from neptune-tinkerpop/3.4.13/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasLabelTest.java
rename to neptune-tinkerpop/3.7.2/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasLabelTest.java
diff --git a/neptune-tinkerpop/3.4.13/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/TinkerGraphProvider.java b/neptune-tinkerpop/3.7.2/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/TinkerGraphProvider.java
similarity index 99%
rename from neptune-tinkerpop/3.4.13/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/TinkerGraphProvider.java
rename to neptune-tinkerpop/3.7.2/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/TinkerGraphProvider.java
index 0efd240..3254aa1 100644
--- a/neptune-tinkerpop/3.4.13/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/TinkerGraphProvider.java
+++ b/neptune-tinkerpop/3.7.2/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/TinkerGraphProvider.java
@@ -18,7 +18,7 @@
*/
package org.apache.tinkerpop.gremlin.tinkergraph;
-import org.apache.commons.configuration.Configuration;
+import org.apache.commons.configuration2.Configuration;
import org.apache.tinkerpop.gremlin.AbstractGraphProvider;
import org.apache.tinkerpop.gremlin.LoadGraphWith;
import org.apache.tinkerpop.gremlin.TestHelper;
diff --git a/neptune-tinkerpop/build.sh b/neptune-tinkerpop/build.sh
index b57b576..f92c0fd 100755
--- a/neptune-tinkerpop/build.sh
+++ b/neptune-tinkerpop/build.sh
@@ -2,7 +2,7 @@
runDir=$(pwd)
-versions=("3.4.13" "3.6.2")
+versions=("3.6.2" "3.7.2")
for version in "${versions[@]}"; do
(
cd $version
diff --git a/neptune-tinkerpop/gremlin-core-3.4.13-patches.zip b/neptune-tinkerpop/gremlin-core-3.4.13-patches.zip
deleted file mode 100644
index 352a240..0000000
Binary files a/neptune-tinkerpop/gremlin-core-3.4.13-patches.zip and /dev/null differ
diff --git a/neptune-tinkerpop/gremlin-core-3.6.2-patches.zip b/neptune-tinkerpop/gremlin-core-3.6.2-patches.zip
index b42e788..c3d38ff 100644
Binary files a/neptune-tinkerpop/gremlin-core-3.6.2-patches.zip and b/neptune-tinkerpop/gremlin-core-3.6.2-patches.zip differ
diff --git a/neptune-tinkerpop/gremlin-core-3.7.2-patches.zip b/neptune-tinkerpop/gremlin-core-3.7.2-patches.zip
new file mode 100644
index 0000000..85d33ca
Binary files /dev/null and b/neptune-tinkerpop/gremlin-core-3.7.2-patches.zip differ
diff --git a/tinkerpop-id-manager/3.6/build.gradle.kts b/tinkerpop-id-manager/3.6/build.gradle.kts
new file mode 100644
index 0000000..fcc664b
--- /dev/null
+++ b/tinkerpop-id-manager/3.6/build.gradle.kts
@@ -0,0 +1,16 @@
+plugins {
+ java
+}
+
+repositories {
+ mavenCentral()
+}
+
+dependencies {
+ implementation("org.apache.tinkerpop:tinkergraph-gremlin:3.6.2")
+}
+
+tasks.jar {
+ archiveFileName.set("${rootProject.name}.jar")
+ destinationDirectory.set(rootDir)
+}
\ No newline at end of file
diff --git a/tinkerpop-id-manager/src/main/java/cloud/localstack/UUIDAnyIdManager.java b/tinkerpop-id-manager/3.6/src/main/java/cloud/localstack/UUIDAnyIdManager.java
similarity index 100%
rename from tinkerpop-id-manager/src/main/java/cloud/localstack/UUIDAnyIdManager.java
rename to tinkerpop-id-manager/3.6/src/main/java/cloud/localstack/UUIDAnyIdManager.java
diff --git a/tinkerpop-id-manager/3.7/build.gradle.kts b/tinkerpop-id-manager/3.7/build.gradle.kts
new file mode 100644
index 0000000..c666984
--- /dev/null
+++ b/tinkerpop-id-manager/3.7/build.gradle.kts
@@ -0,0 +1,16 @@
+plugins {
+ java
+}
+
+repositories {
+ mavenCentral()
+}
+
+dependencies {
+ implementation("org.apache.tinkerpop:tinkergraph-gremlin:3.7.2")
+}
+
+tasks.jar {
+ archiveFileName.set("${rootProject.name}-37.jar")
+ destinationDirectory.set(rootDir)
+}
\ No newline at end of file
diff --git a/tinkerpop-id-manager/3.7/src/main/java/cloud/localstack/UUIDAnyIdManager.java b/tinkerpop-id-manager/3.7/src/main/java/cloud/localstack/UUIDAnyIdManager.java
new file mode 100644
index 0000000..398ae24
--- /dev/null
+++ b/tinkerpop-id-manager/3.7/src/main/java/cloud/localstack/UUIDAnyIdManager.java
@@ -0,0 +1,29 @@
+package cloud.localstack;
+
+
+import org.apache.tinkerpop.gremlin.tinkergraph.structure.AbstractTinkerGraph;
+
+import java.util.UUID;
+
+public class UUIDAnyIdManager implements AbstractTinkerGraph.IdManager {
+ @Override
+ public String getNextId(final AbstractTinkerGraph graph) {
+ return UUID.randomUUID().toString();
+ }
+
+ @Override
+ public String convert(final Object id) {
+ if (null == id) {
+ return null;
+ }
+ if (!(id instanceof String)) {
+ throw new IllegalArgumentException(String.format("Expected an id that is String but received %s - [%s]", id.getClass(), id));
+ }
+ return (String) id;
+ }
+
+ @Override
+ public boolean allow(final Object id) {
+ return id instanceof String;
+ }
+}
diff --git a/tinkerpop-id-manager/build.gradle.kts b/tinkerpop-id-manager/build.gradle.kts
index 27eb1b2..b6517eb 100644
--- a/tinkerpop-id-manager/build.gradle.kts
+++ b/tinkerpop-id-manager/build.gradle.kts
@@ -11,7 +11,6 @@ repositories {
dependencies {
testImplementation("org.junit.jupiter:junit-jupiter-api:5.6.0")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
- implementation("org.apache.tinkerpop:tinkergraph-gremlin:3.4.10")
}
tasks.getByName("test") {
diff --git a/tinkerpop-id-manager/settings.gradle.kts b/tinkerpop-id-manager/settings.gradle.kts
index 8b5d975..28fa757 100644
--- a/tinkerpop-id-manager/settings.gradle.kts
+++ b/tinkerpop-id-manager/settings.gradle.kts
@@ -8,3 +8,5 @@
*/
rootProject.name = "tinkerpop-id-manager"
+
+include("3.6", "3.7")
\ No newline at end of file
diff --git a/tinkerpop-id-manager/tinkerpop-id-manager-37.jar b/tinkerpop-id-manager/tinkerpop-id-manager-37.jar
new file mode 100644
index 0000000..b66b435
Binary files /dev/null and b/tinkerpop-id-manager/tinkerpop-id-manager-37.jar differ
diff --git a/tinkerpop-id-manager/tinkerpop-id-manager.jar b/tinkerpop-id-manager/tinkerpop-id-manager.jar
index 066e03e..3620cbb 100644
Binary files a/tinkerpop-id-manager/tinkerpop-id-manager.jar and b/tinkerpop-id-manager/tinkerpop-id-manager.jar differ