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) {