diff --git a/pom.xml b/pom.xml index 6ca2c78..51fff91 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ UTF-8 7.17.0 - 3.3.11 + 3.7.3 4.13.1 1.2.13 3.4 diff --git a/src/main/java/com/arangodb/tinkerpop/gremlin/client/ArangoDBPropertyFilter.java b/src/main/java/com/arangodb/tinkerpop/gremlin/client/ArangoDBPropertyFilter.java index ed205c1..64b07fe 100644 --- a/src/main/java/com/arangodb/tinkerpop/gremlin/client/ArangoDBPropertyFilter.java +++ b/src/main/java/com/arangodb/tinkerpop/gremlin/client/ArangoDBPropertyFilter.java @@ -13,7 +13,7 @@ import java.util.List; import java.util.Map; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/com/arangodb/tinkerpop/gremlin/structure/ArangoDBElementProperty.java b/src/main/java/com/arangodb/tinkerpop/gremlin/structure/ArangoDBElementProperty.java index 829bef3..f9f36bb 100644 --- a/src/main/java/com/arangodb/tinkerpop/gremlin/structure/ArangoDBElementProperty.java +++ b/src/main/java/com/arangodb/tinkerpop/gremlin/structure/ArangoDBElementProperty.java @@ -10,6 +10,7 @@ import java.util.NoSuchElementException; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import org.apache.tinkerpop.gremlin.structure.Property; import org.apache.tinkerpop.gremlin.structure.util.ElementHelper; @@ -90,7 +91,7 @@ public ArangoDBElementProperty(String key, String name, V value, ArangoDBBaseDoc super(key, label, owner.graph()); this.name = name; this.value = value; - this.valueType = value.getClass().getCanonicalName(); + this.valueType = (value != null ? value.getClass() : Void.class).getCanonicalName(); } /** @@ -106,6 +107,7 @@ public ArangoDBElementProperty(String name, V value, ArangoDBBaseDocument owner, this(null, name, value, owner, label); } + @JsonIgnore @Override public boolean isPresent() { return value != null; diff --git a/src/main/java/com/arangodb/tinkerpop/gremlin/structure/ArangoDBGraph.java b/src/main/java/com/arangodb/tinkerpop/gremlin/structure/ArangoDBGraph.java index d98d8bc..20a2b90 100644 --- a/src/main/java/com/arangodb/tinkerpop/gremlin/structure/ArangoDBGraph.java +++ b/src/main/java/com/arangodb/tinkerpop/gremlin/structure/ArangoDBGraph.java @@ -14,8 +14,8 @@ import com.arangodb.entity.EdgeDefinition; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.configuration.Configuration; -import org.apache.commons.configuration.ConfigurationConverter; +import org.apache.commons.configuration2.Configuration; +import org.apache.commons.configuration2.ConfigurationConverter; import org.apache.commons.lang3.StringUtils; import org.apache.tinkerpop.gremlin.process.computer.GraphComputer; import org.apache.tinkerpop.gremlin.structure.Edge; @@ -161,6 +161,21 @@ test = "org.apache.tinkerpop.gremlin.structure.util.detached.DetachedGraphTest", method = "testAttachableCreateMethod", reason = "test creates id without label prefix") +@Graph.OptOut( + test = "org.apache.tinkerpop.gremlin.structure.PropertyTest$BasicPropertyTest", + method = "shouldAllowNullAddVertexProperty", + reason = "Cannot distinguish between null and not present properties." +) +@Graph.OptOut( + test = "org.apache.tinkerpop.gremlin.structure.PropertyTest$BasicPropertyTest", + method = "shouldAllowNullAddVertex", + reason = "Cannot distinguish between null and not present properties." +) +@Graph.OptOut( + test = "org.apache.tinkerpop.gremlin.structure.PropertyTest$BasicPropertyTest", + method = "shouldAllowNullAddEdge", + reason = "Cannot distinguish between null and not present properties." +) // FIXME, OptOut failing tests @Graph.OptOut( test = "org.apache.tinkerpop.gremlin.structure.GraphTest", @@ -175,11 +190,11 @@ method = "shouldAllowIdAssignment", reason = "FIXME") @Graph.OptOut( - test = "org.apache.tinkerpop.gremlin.structure.SerializationTest$GryoV3d0Test", + test = "org.apache.tinkerpop.gremlin.structure.SerializationTest$GryoV3Test", method = "shouldSerializeTree", reason = "FIXME") @Graph.OptOut( - test = "org.apache.tinkerpop.gremlin.structure.SerializationTest$GryoV1d0Test", + test = "org.apache.tinkerpop.gremlin.structure.SerializationTest$GryoV1Test", method = "shouldSerializeTree", reason = "FIXME") @Graph.OptOut( diff --git a/src/main/java/com/arangodb/tinkerpop/gremlin/structure/ArangoDBVertex.java b/src/main/java/com/arangodb/tinkerpop/gremlin/structure/ArangoDBVertex.java index 13a5639..ad3c589 100644 --- a/src/main/java/com/arangodb/tinkerpop/gremlin/structure/ArangoDBVertex.java +++ b/src/main/java/com/arangodb/tinkerpop/gremlin/structure/ArangoDBVertex.java @@ -19,7 +19,7 @@ import java.util.regex.Matcher; import java.util.stream.Collectors; -import org.apache.commons.lang.ArrayUtils; +import org.apache.commons.lang3.ArrayUtils; import org.apache.tinkerpop.gremlin.structure.Direction; import org.apache.tinkerpop.gremlin.structure.Edge; import org.apache.tinkerpop.gremlin.structure.Graph; @@ -38,7 +38,6 @@ import com.arangodb.tinkerpop.gremlin.client.ArangoDBIterator; import com.arangodb.tinkerpop.gremlin.client.ArangoDBPropertyFilter; import com.arangodb.tinkerpop.gremlin.client.ArangoDBPropertyIterator; -import com.arangodb.tinkerpop.gremlin.client.ArangoDBQueryBuilder; import com.arangodb.tinkerpop.gremlin.utils.ArangoDBUtil; diff --git a/src/main/java/com/arangodb/tinkerpop/gremlin/utils/ArangoDBConfigurationBuilder.java b/src/main/java/com/arangodb/tinkerpop/gremlin/utils/ArangoDBConfigurationBuilder.java index fd9d4f8..238ffaa 100644 --- a/src/main/java/com/arangodb/tinkerpop/gremlin/utils/ArangoDBConfigurationBuilder.java +++ b/src/main/java/com/arangodb/tinkerpop/gremlin/utils/ArangoDBConfigurationBuilder.java @@ -15,7 +15,8 @@ import java.util.Set; import java.util.stream.Collectors; -import org.apache.commons.configuration.BaseConfiguration; +import org.apache.commons.configuration2.BaseConfiguration; +import org.apache.commons.configuration2.convert.LegacyListDelimiterHandler; import org.apache.commons.lang3.tuple.ImmutableTriple; import org.apache.commons.lang3.tuple.Triple; import org.apache.tinkerpop.gremlin.structure.Graph; @@ -123,12 +124,12 @@ public ArangoDBConfigurationBuilder() { * Build the configuration. * * @return a configuration that can be used to instantiate a new {@link ArangoDBGraph}. - * @see ArangoDBGraph#open(org.apache.commons.configuration.Configuration) + * @see ArangoDBGraph#open(org.apache.commons.configuration2.Configuration) */ public BaseConfiguration build() { BaseConfiguration config = new BaseConfiguration(); - config.setListDelimiter('/'); + config.setListDelimiterHandler(new LegacyListDelimiterHandler('/')); config.addProperty(fullPropertyKey(ArangoDBGraph.PROPERTY_KEY_DB_NAME), dbName); config.addProperty(fullPropertyKey(ArangoDBGraph.PROPERTY_KEY_GRAPH_NAME), graphName); config.addProperty(fullPropertyKey(ArangoDBGraph.PROPERTY_KEY_VERTICES), vertices); diff --git a/src/test/java/com/arangodb/tinkerpop/gremlin/ArangoDBGraphProvider.java b/src/test/java/com/arangodb/tinkerpop/gremlin/ArangoDBGraphProvider.java index 043c1ec..fff483c 100644 --- a/src/test/java/com/arangodb/tinkerpop/gremlin/ArangoDBGraphProvider.java +++ b/src/test/java/com/arangodb/tinkerpop/gremlin/ArangoDBGraphProvider.java @@ -6,8 +6,8 @@ import java.util.Set; import com.arangodb.tinkerpop.gremlin.structure.*; -import org.apache.commons.configuration.Configuration; -import org.apache.commons.configuration.ConfigurationConverter; +import org.apache.commons.configuration2.Configuration; +import org.apache.commons.configuration2.ConfigurationConverter; import org.apache.tinkerpop.gremlin.AbstractGraphProvider; import org.apache.tinkerpop.gremlin.LoadGraphWith; import org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData; @@ -192,6 +192,7 @@ else if (testMethodName.startsWith("shouldThrowOnGraphAddEdge")) { case "shouldValidateEquality": case "shouldHaveExceptionConsistencyWhenAssigningSameIdOnEdge": case "shouldAddEdgeWithUserSuppliedStringId": + case "shouldAllowNullAddEdge": builder.withEdgeCollection("self"); break; case "shouldAllowRemovalFromEdgeWhenAlreadyRemoved": @@ -222,6 +223,7 @@ else if (testMethodName.startsWith("shouldThrowOnGraphAddEdge")) { builder.withEdgeCollection("created"); break; case "shouldAddVertexWithLabel": + case "shouldAllowNullAddVertexProperty": builder.withVertexCollection("person"); break; case "shouldNotAllowSetProperty": @@ -258,6 +260,14 @@ else if (testMethodName.startsWith("shouldThrowOnGraphAddEdge")) { builder.withVertexCollection("foo"); } break; + case "shouldHaveExceptionConsistencyWhenUsingNullVertexLabelOnOverload": + case "shouldHaveExceptionConsistencyWhenUsingNullVertexLabel": + builder.withVertexCollection("foo"); + break; + case "shouldReadGraphMLWithCommonVertexAndEdgePropertyNames": + builder.withEdgeCollection("created"); + builder.withEdgeCollection("knows"); + break; default: System.out.println("case \"" + testMethodName + "\":"); } diff --git a/src/test/java/com/arangodb/tinkerpop/gremlin/ArangoDBTestSuite.java b/src/test/java/com/arangodb/tinkerpop/gremlin/ArangoDBTestSuite.java index 81a9fc3..a60343c 100644 --- a/src/test/java/com/arangodb/tinkerpop/gremlin/ArangoDBTestSuite.java +++ b/src/test/java/com/arangodb/tinkerpop/gremlin/ArangoDBTestSuite.java @@ -4,16 +4,7 @@ import org.apache.tinkerpop.gremlin.algorithm.generator.CommunityGeneratorTest; import org.apache.tinkerpop.gremlin.algorithm.generator.DistributionGeneratorTest; import org.apache.tinkerpop.gremlin.process.traversal.TraversalEngine; -import org.apache.tinkerpop.gremlin.structure.VertexTest; -import org.apache.tinkerpop.gremlin.structure.EdgeTest; -import org.apache.tinkerpop.gremlin.structure.FeatureSupportTest; -import org.apache.tinkerpop.gremlin.structure.GraphConstructionTest; -import org.apache.tinkerpop.gremlin.structure.GraphTest; -import org.apache.tinkerpop.gremlin.structure.PropertyTest; -import org.apache.tinkerpop.gremlin.structure.SerializationTest; -import org.apache.tinkerpop.gremlin.structure.TransactionTest; -import org.apache.tinkerpop.gremlin.structure.VariablesTest; -import org.apache.tinkerpop.gremlin.structure.VertexPropertyTest; +import org.apache.tinkerpop.gremlin.structure.*; import org.apache.tinkerpop.gremlin.structure.io.IoCustomTest; import org.apache.tinkerpop.gremlin.structure.io.IoEdgeTest; import org.apache.tinkerpop.gremlin.structure.io.IoGraphTest; @@ -59,19 +50,16 @@ public class ArangoDBTestSuite extends AbstractGremlinSuite { */ private static final Class[] allTests = new Class[]{ CommunityGeneratorTest.class, - // Missing DetachedGraphTest.class, DetachedEdgeTest.class, DetachedVertexPropertyTest.class, DetachedPropertyTest.class, DetachedVertexTest.class, - // Missing - DistributionGeneratorTest.class, EdgeTest.class, FeatureSupportTest.class, IoCustomTest.class, - IoEdgeTest.class, + IoEdgeTest.class, IoGraphTest.class, IoVertexTest.class, IoPropertyTest.class, @@ -88,6 +76,7 @@ public class ArangoDBTestSuite extends AbstractGremlinSuite { SerializationTest.class, StarGraphTest.class, TransactionTest.class, + TransactionMultiThreadedTest.class, VertexTest.class, //ArangoDBIndexCheck.class, //ArangoDBCypherCheck.class, diff --git a/src/test/java/com/arangodb/tinkerpop/gremlin/Issue57.java b/src/test/java/com/arangodb/tinkerpop/gremlin/Issue57.java index db75c84..752d726 100644 --- a/src/test/java/com/arangodb/tinkerpop/gremlin/Issue57.java +++ b/src/test/java/com/arangodb/tinkerpop/gremlin/Issue57.java @@ -2,7 +2,7 @@ import com.arangodb.tinkerpop.gremlin.structure.ArangoDBGraph; import com.arangodb.tinkerpop.gremlin.utils.ArangoDBConfigurationBuilder; -import org.apache.commons.configuration.Configuration; +import org.apache.commons.configuration2.Configuration; import java.io.File; diff --git a/src/test/java/com/arangodb/tinkerpop/gremlin/client/test/BaseTestCase.java b/src/test/java/com/arangodb/tinkerpop/gremlin/client/test/BaseTestCase.java index 777a717..6a2139c 100644 --- a/src/test/java/com/arangodb/tinkerpop/gremlin/client/test/BaseTestCase.java +++ b/src/test/java/com/arangodb/tinkerpop/gremlin/client/test/BaseTestCase.java @@ -3,8 +3,8 @@ import java.util.Properties; import com.arangodb.tinkerpop.gremlin.client.ArangoDBGraphClient; -import org.apache.commons.configuration.ConfigurationConverter; -import org.apache.commons.configuration.PropertiesConfiguration; +import org.apache.commons.configuration2.ConfigurationConverter; +import org.apache.commons.configuration2.PropertiesConfiguration; import org.junit.After; import org.junit.Before; diff --git a/src/test/java/com/arangodb/tinkerpop/gremlin/client/test/ClientTest.java b/src/test/java/com/arangodb/tinkerpop/gremlin/client/test/ClientTest.java index 697b46c..b05af42 100644 --- a/src/test/java/com/arangodb/tinkerpop/gremlin/client/test/ClientTest.java +++ b/src/test/java/com/arangodb/tinkerpop/gremlin/client/test/ClientTest.java @@ -19,8 +19,8 @@ import java.util.stream.Collectors; import com.arangodb.tinkerpop.gremlin.structure.ArangoDBGraph; -import org.apache.commons.configuration.ConfigurationConverter; -import org.apache.commons.configuration.PropertiesConfiguration; +import org.apache.commons.configuration2.ConfigurationConverter; +import org.apache.commons.configuration2.PropertiesConfiguration; import org.junit.*; import org.junit.rules.ExpectedException; import org.junit.runner.RunWith; diff --git a/src/test/resources/logback-test.xml b/src/test/resources/logback-test.xml index 284dba5..9e037b2 100644 --- a/src/test/resources/logback-test.xml +++ b/src/test/resources/logback-test.xml @@ -1,31 +1,31 @@ - - - - %d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n - - + + + + %d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n + + - - tikerpopTests.log - false - - true - - - %-4relative [%thread] %-5level %logger{35} - %msg%n - - + + tikerpopTests.log + false + + true + + + %-4relative [%thread] %-5level %logger{35} - %msg%n + + - - - - + + + + - - + +