You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2020/11/20 20:30:01 UTC

[tinkerpop] 02/03: Fixed small bug in configuration for ReservedKeysVerificationStrategy and made all configuration key tokens public

This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 4d6538f7181cb495cfbf029a0a6719d5159e9bac
Author: Stephen Mallette <st...@amazon.com>
AuthorDate: Fri Nov 20 15:28:40 2020 -0500

    Fixed small bug in configuration for ReservedKeysVerificationStrategy and made all configuration key tokens public
---
 CHANGELOG.asciidoc                                     |  2 ++
 .../AbstractWarningVerificationStrategy.java           |  4 ++--
 .../verification/ReservedKeysVerificationStrategy.java | 12 +++++++++++-
 .../ReservedKeysVerificationStrategyTest.java          | 18 +++++++++++++++---
 4 files changed, 30 insertions(+), 6 deletions(-)

diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 816be3d..a26c3a1 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -59,6 +59,8 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 * Fixed bug with Bytecode serialization when `Bytecode.toString()` is used in Javascript.
 * Fixed "toString" for P and TextP to produce valid script representation from bytecode glv steps containing a string predicate in Javascript.
 * Fixed a bug which could cause Java driver to hang when using `ResultSet.statusAttributes()`
+* Fixed bug with `ReservedVerificationStrategy.getConfiguration()` which was omitting the reserved `keys` value.
+* Changed all configuration keys on `AbstractWarningVerificationStrategy` implementations to `public`.
 * Deprecated `BytecodeUtil` and merged its functionality to the existing `BytecodeHelper`.
 
 [[release-3-4-8]]
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/AbstractWarningVerificationStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/AbstractWarningVerificationStrategy.java
index a7c5a3a..52c9410 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/AbstractWarningVerificationStrategy.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/AbstractWarningVerificationStrategy.java
@@ -42,8 +42,8 @@ public abstract class AbstractWarningVerificationStrategy
 
     private static final Logger LOGGER = LoggerFactory.getLogger(AbstractWarningVerificationStrategy.class);
 
-    protected static final String THROW_EXCEPTION = "throwException";
-    protected static final String LOG_WARNING = "logWarning";
+    public static final String THROW_EXCEPTION = "throwException";
+    public static final String LOG_WARNING = "logWarning";
 
     protected final boolean throwException;
     protected final boolean logWarning;
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ReservedKeysVerificationStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ReservedKeysVerificationStrategy.java
index 8fe6424..b106884 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ReservedKeysVerificationStrategy.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ReservedKeysVerificationStrategy.java
@@ -19,6 +19,7 @@
 package org.apache.tinkerpop.gremlin.process.traversal.strategy.verification;
 
 import org.apache.commons.configuration.Configuration;
+import org.apache.commons.configuration.MapConfiguration;
 import org.apache.tinkerpop.gremlin.process.traversal.Step;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.step.Parameterizing;
@@ -31,7 +32,9 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.util.Parameters;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.HashSet;
+import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
 
@@ -47,7 +50,7 @@ import java.util.stream.Collectors;
  */
 public class ReservedKeysVerificationStrategy extends AbstractWarningVerificationStrategy {
 
-    private static final String KEYS = "keys";
+    public static final String KEYS = "keys";
     private static final Set<String> DEFAULT_RESERVED_KEYS = new HashSet<>(Arrays.asList("id", "label"));
     private final Set<String> reservedKeys;
 
@@ -84,6 +87,13 @@ public class ReservedKeysVerificationStrategy extends AbstractWarningVerificatio
                 .logWarning(configuration.getBoolean(LOG_WARNING, false)).create();
     }
 
+    @Override
+    public Configuration getConfiguration() {
+        final Configuration c = super.getConfiguration();
+        c.setProperty(KEYS, this.reservedKeys);
+        return c;
+    }
+
     public static ReservedKeysVerificationStrategy.Builder build() {
         return new ReservedKeysVerificationStrategy.Builder();
     }
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ReservedKeysVerificationStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ReservedKeysVerificationStrategyTest.java
index f25f66d..22dcd11 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ReservedKeysVerificationStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ReservedKeysVerificationStrategyTest.java
@@ -34,6 +34,7 @@ import org.junit.runners.Parameterized;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashSet;
 import java.util.List;
 import java.util.function.Predicate;
 import java.util.regex.Pattern;
@@ -81,6 +82,7 @@ public class ReservedKeysVerificationStrategyTest {
                 {"__.addE('knows').property('label','xyz')", __.addE("knows").property("id", "xyz"), false},
                 {"__.addV().property('x','xyz', 'label', 'xxx')", __.addV().property("x", "xyz", "label", "xxx"), false},
                 {"__.addV().property('x','xyz', 'not-Label', 'xxx')", __.addV().property("x", "xyz", "not-label", "xxx"), true},
+                {"__.addV().property('x','xyz', 'not-allowed', 'xxx')", __.addV().property("x", "xyz", "not-allowed", "xxx"), false},
         });
     }
 
@@ -106,7 +108,10 @@ public class ReservedKeysVerificationStrategyTest {
     @Test
     public void shouldOnlyThrow() {
         final TraversalStrategies strategies = new DefaultTraversalStrategies();
-        strategies.addStrategies(ReservedKeysVerificationStrategy.build().throwException().create());
+        final ReservedKeysVerificationStrategy.Builder builder = ReservedKeysVerificationStrategy.build().throwException();
+        if (name.equals("__.addV().property('x','xyz', 'not-allowed', 'xxx')"))
+            builder.reservedKeys(new HashSet<>(Arrays.asList("id", "label", "not-allowed")));
+        strategies.addStrategies(builder.create());
         final Traversal traversal = this.traversal.asAdmin().clone();
         traversal.asAdmin().setStrategies(strategies);
         if (allow) {
@@ -125,7 +130,10 @@ public class ReservedKeysVerificationStrategyTest {
     @Test
     public void shouldOnlyLog() {
         final TraversalStrategies strategies = new DefaultTraversalStrategies();
-        strategies.addStrategies(ReservedKeysVerificationStrategy.build().logWarning().create());
+        final ReservedKeysVerificationStrategy.Builder builder = ReservedKeysVerificationStrategy.build().logWarning();
+        if (name.equals("__.addV().property('x','xyz', 'not-allowed', 'xxx')"))
+            builder.reservedKeys(new HashSet<>(Arrays.asList("id", "label", "not-allowed")));
+        strategies.addStrategies(builder.create());
         final Traversal traversal = this.traversal.asAdmin().clone();
         traversal.asAdmin().setStrategies(strategies);
         traversal.asAdmin().applyStrategies();
@@ -138,7 +146,11 @@ public class ReservedKeysVerificationStrategyTest {
     @Test
     public void shouldThrowAndLog() {
         final TraversalStrategies strategies = new DefaultTraversalStrategies();
-        strategies.addStrategies(ReservedKeysVerificationStrategy.build().throwException().logWarning().create());
+        final ReservedKeysVerificationStrategy.Builder builder = ReservedKeysVerificationStrategy.build().
+                throwException().logWarning();
+        if (name.equals("__.addV().property('x','xyz', 'not-allowed', 'xxx')"))
+            builder.reservedKeys(new HashSet<>(Arrays.asList("id", "label", "not-allowed")));
+        strategies.addStrategies(builder.create());
         final Traversal traversal = this.traversal.asAdmin().clone();
         traversal.asAdmin().setStrategies(strategies);
         if (allow) {