This is an automated email from the ASF dual-hosted git repository. kenhuuu pushed a commit to branch graphson-removal in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit cc24fddb1319268713be561eb294c125aae35014 Author: Ken Hu <[email protected]> AuthorDate: Mon Jun 22 14:27:17 2026 -0700 Remove references to GraphSON4. GraphSON4 was enabled in gremlin-driver/gremlin-python for the beta1 release but should be removed prior to the actual release as 4.x will only officially support GraphBinary. --- .../Process/Traversal/GraphSONVersion.cs | 66 ---------------------- .../gremlin/driver/ClusterConfigTest.java | 52 ----------------- .../gremlin-javascript/lib/process/traversal.ts | 1 - .../python/tests/integration/driver/test_client.py | 19 ------- .../remote/GraphSONLangRemoteFeatureTest.java | 51 ----------------- ...GraphSONLangRemoteParameterizedFeatureTest.java | 51 ----------------- .../remote/GraphSONRemoteComputerFeatureTest.java | 51 ----------------- .../gremlin/driver/remote/RemoteWorld.java | 31 ---------- .../io.cucumber.core.backend.ObjectFactory | 3 - 9 files changed, 325 deletions(-) diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphSONVersion.cs b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphSONVersion.cs deleted file mode 100644 index 51c0bf5e64..0000000000 --- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphSONVersion.cs +++ /dev/null @@ -1,66 +0,0 @@ -#region License - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#endregion - -using System; -using System.Collections.Generic; - -namespace Gremlin.Net.Process.Traversal -{ -#pragma warning disable 1591 - - public class GraphSONVersion : EnumWrapper - { - private GraphSONVersion(string enumValue) - : base("GraphSONVersion", enumValue) - { - } - - public static GraphSONVersion V1_0 => new GraphSONVersion("V1_0"); - - public static GraphSONVersion V2_0 => new GraphSONVersion("V2_0"); - - public static GraphSONVersion V3_0 => new GraphSONVersion("V3_0"); - - private static readonly IDictionary<string, GraphSONVersion> Properties = new Dictionary<string, GraphSONVersion> - { - { "V1_0", V1_0 }, - { "V2_0", V2_0 }, - { "V3_0", V3_0 }, - }; - - /// <summary> - /// Gets the GraphSONVersion enumeration by value. - /// </summary> - public static GraphSONVersion GetByValue(string value) - { - if (!Properties.TryGetValue(value, out var property)) - { - throw new ArgumentException($"No matching GraphSONVersion for value '{value}'"); - } - return property; - } - } - - -#pragma warning restore 1591 -} \ No newline at end of file diff --git a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ClusterConfigTest.java b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ClusterConfigTest.java deleted file mode 100644 index 12d8da0bfa..0000000000 --- a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ClusterConfigTest.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.tinkerpop.gremlin.driver; - -import org.apache.commons.configuration2.BaseConfiguration; -import org.apache.commons.configuration2.Configuration; -import org.apache.tinkerpop.gremlin.util.ser.GraphSONMessageSerializerV4; -import org.apache.tinkerpop.shaded.jackson.core.StreamReadConstraints; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class ClusterConfigTest { - - @Test - public void shouldPropagateSerializerConstraintsForGraphSON4() { - final Configuration config = new BaseConfiguration(); - config.setProperty("serializer.config.maxNumberLength", 999); - config.setProperty("serializer.config.maxStringLength", 123456); - config.setProperty("serializer.config.maxNestingDepth", 55); - config.setProperty("hosts", Arrays.asList("localhost")); - - config.setProperty("serializer.className", GraphSONMessageSerializerV4.class.getCanonicalName()); - final Cluster cluster = Cluster.open(config); - assertTrue(cluster.getSerializer() instanceof GraphSONMessageSerializerV4); - final GraphSONMessageSerializerV4 serV4 = (GraphSONMessageSerializerV4) cluster.getSerializer(); - final StreamReadConstraints constraints = serV4.getMapper().getFactory().streamReadConstraints(); - - assertEquals(999, constraints.getMaxNumberLength()); - assertEquals(123456, constraints.getMaxStringLength()); - assertEquals(55, constraints.getMaxNestingDepth()); - } -} diff --git a/gremlin-js/gremlin-javascript/lib/process/traversal.ts b/gremlin-js/gremlin-javascript/lib/process/traversal.ts index 12404b80b3..6fea0c3cb9 100644 --- a/gremlin-js/gremlin-javascript/lib/process/traversal.ts +++ b/gremlin-js/gremlin-javascript/lib/process/traversal.ts @@ -580,7 +580,6 @@ export const column = toEnum('Column', 'keys values'); export const direction = toDirectionEnum('Direction', 'BOTH IN OUT from_ to'); export const dt = toEnum('DT', 'second minute hour day'); export const gType = toGTypeEnum('GType', 'bigDecimal bigInt binary boolean byte char datetime double duration edge float graph int list long map null number path property set short string tree uuid vertex vproperty'); -export const graphSONVersion = toEnum('GraphSONVersion', 'V1_0 V2_0 V3_0'); export const gryoVersion = toEnum('GryoVersion', 'V1_0 V3_0'); export const merge = toEnum('Merge', 'onCreate onMatch outV inV'); export const operator = toEnum('Operator', 'addAll and assign div max min minus mult or sum sumLong'); diff --git a/gremlin-python/src/main/python/tests/integration/driver/test_client.py b/gremlin-python/src/main/python/tests/integration/driver/test_client.py index b6a2236eda..cc972204d0 100644 --- a/gremlin-python/src/main/python/tests/integration/driver/test_client.py +++ b/gremlin-python/src/main/python/tests/integration/driver/test_client.py @@ -493,15 +493,6 @@ def test_asyncio(client): # TODO: tests pass because requestID is now generated on HTTP server and this option gets ignored, tests to be removed # or updated depending on if we still want to use requestID or not [email protected](reason="requestID is generated on server side only, disable for now") -def test_client_custom_invalid_request_id_graphson_script(client): - client = Client(test_no_auth_url, 'gmodern') - try: - client.submit('g.V()', request_options={"requestId": "malformed"}).all().result() - except Exception as ex: - assert "badly formed hexadecimal UUID string" in str(ex) - - @pytest.mark.skip(reason="requestID is generated on server side only, disable for now") def test_client_custom_invalid_request_id_graphbinary_script(client): client = Client(test_no_auth_url, 'gmodern') @@ -521,16 +512,6 @@ def test_client_custom_valid_request_id_script_string(client): assert len(client.submit('g.V()', request_options={"requestId": str(uuid.uuid4())}).all().result()) == 6 [email protected](reason="requestID is generated on server side only, disable for now") -def test_client_custom_invalid_request_id_graphson_bytecode(client): - client = Client(test_no_auth_url, 'gmodern') - query = GraphTraversalSource(Graph(), TraversalStrategies()).V().bytecode - try: - client.submit(query, request_options={"requestId": "malformed"}).all().result() - except Exception as ex: - assert "badly formed hexadecimal UUID string" in str(ex) - - @pytest.mark.skip(reason="requestID is generated on server side only, disable for now") def test_client_custom_invalid_request_id_graphbinary_bytecode(client): client = Client(test_no_auth_url, 'gmodern') diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/GraphSONLangRemoteFeatureTest.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/GraphSONLangRemoteFeatureTest.java deleted file mode 100644 index 59c32d8dec..0000000000 --- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/GraphSONLangRemoteFeatureTest.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.tinkerpop.gremlin.driver.remote; - -import com.google.inject.AbstractModule; -import com.google.inject.Guice; -import com.google.inject.Stage; -import io.cucumber.guice.CucumberModules; -import io.cucumber.junit.Cucumber; -import io.cucumber.junit.CucumberOptions; -import org.apache.tinkerpop.gremlin.features.AbstractGuiceFactory; -import org.apache.tinkerpop.gremlin.features.World; -import org.junit.runner.RunWith; - -@RunWith(Cucumber.class) -@CucumberOptions( - tags = "not @GraphComputerOnly and not @AllowNullPropertyValues and not @StepSubgraph", - glue = { "org.apache.tinkerpop.gremlin.features" }, - objectFactory = GraphSONLangRemoteFeatureTest.RemoteGuiceFactory.class, - features = { "classpath:/org/apache/tinkerpop/gremlin/test/features" }, - plugin = {"progress", "junit:target/cucumber.xml"}) -public class GraphSONLangRemoteFeatureTest extends AbstractFeatureTest { - public static class RemoteGuiceFactory extends AbstractGuiceFactory { - public RemoteGuiceFactory() { - super(Guice.createInjector(Stage.PRODUCTION, CucumberModules.createScenarioModule(), new ServiceModule())); - } - } - - public static final class ServiceModule extends AbstractModule { - @Override - protected void configure() { - bind(World.class).to(RemoteWorld.GraphSONLangRemoteWorld.class); - } - } -} diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/GraphSONLangRemoteParameterizedFeatureTest.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/GraphSONLangRemoteParameterizedFeatureTest.java deleted file mode 100644 index fbf210940e..0000000000 --- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/GraphSONLangRemoteParameterizedFeatureTest.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.tinkerpop.gremlin.driver.remote; - -import com.google.inject.AbstractModule; -import com.google.inject.Guice; -import com.google.inject.Stage; -import io.cucumber.guice.CucumberModules; -import io.cucumber.junit.Cucumber; -import io.cucumber.junit.CucumberOptions; -import org.apache.tinkerpop.gremlin.features.AbstractGuiceFactory; -import org.apache.tinkerpop.gremlin.features.World; -import org.junit.runner.RunWith; - -@RunWith(Cucumber.class) -@CucumberOptions( - tags = "not @GraphComputerOnly and not @AllowNullPropertyValues and not @StepSubgraph", - glue = { "org.apache.tinkerpop.gremlin.features" }, - objectFactory = GraphSONLangRemoteParameterizedFeatureTest.RemoteGuiceFactory.class, - features = { "classpath:/org/apache/tinkerpop/gremlin/test/features" }, - plugin = {"progress", "junit:target/cucumber.xml"}) -public class GraphSONLangRemoteParameterizedFeatureTest extends AbstractFeatureTest { - public static class RemoteGuiceFactory extends AbstractGuiceFactory { - public RemoteGuiceFactory() { - super(Guice.createInjector(Stage.PRODUCTION, CucumberModules.createScenarioModule(), new ServiceModule())); - } - } - - public static final class ServiceModule extends AbstractModule { - @Override - protected void configure() { - bind(World.class).to(RemoteWorld.GraphSONLangParameterizedRemoteWorld.class); - } - } -} diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/GraphSONRemoteComputerFeatureTest.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/GraphSONRemoteComputerFeatureTest.java deleted file mode 100644 index 97ce0c8816..0000000000 --- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/GraphSONRemoteComputerFeatureTest.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.tinkerpop.gremlin.driver.remote; - -import com.google.inject.AbstractModule; -import com.google.inject.Guice; -import com.google.inject.Stage; -import io.cucumber.guice.CucumberModules; -import io.cucumber.junit.Cucumber; -import io.cucumber.junit.CucumberOptions; -import org.apache.tinkerpop.gremlin.features.AbstractGuiceFactory; -import org.apache.tinkerpop.gremlin.features.World; -import org.junit.runner.RunWith; - -@RunWith(Cucumber.class) -@CucumberOptions( - tags = World.GRAPHCOMPUTER_TAG_FILTER + " and not @StepSubgraph", // TINKERPOP-3154 - glue = { "org.apache.tinkerpop.gremlin.features" }, - objectFactory = GraphSONRemoteComputerFeatureTest.RemoteGuiceFactory.class, - features = { "classpath:/org/apache/tinkerpop/gremlin/test/features" }, - plugin = {"progress", "junit:target/cucumber.xml"}) -public class GraphSONRemoteComputerFeatureTest extends AbstractFeatureTest { - public static class RemoteGuiceFactory extends AbstractGuiceFactory { - public RemoteGuiceFactory() { - super(Guice.createInjector(Stage.PRODUCTION, CucumberModules.createScenarioModule(), new ServiceModule())); - } - } - - public static final class ServiceModule extends AbstractModule { - @Override - protected void configure() { - bind(World.class).to(RemoteWorld.GraphSONRemoteComputerWorld.class); - } - } -} diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/RemoteWorld.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/RemoteWorld.java index 42bc9b5dee..54b811d6e4 100644 --- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/RemoteWorld.java +++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/RemoteWorld.java @@ -224,35 +224,4 @@ public abstract class RemoteWorld implements World { return g.with("language", "groovy-test"); } } - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - public static class GraphSONLangRemoteWorld extends RemoteWorld { - public GraphSONLangRemoteWorld() { super(createTestCluster(Serializers.GRAPHSON_V4)); } - - @Override - public GraphTraversalSource getGraphTraversalSource(final LoadGraphWith.GraphData graphData) { - final GraphTraversalSource g = super.getGraphTraversalSource(graphData); - return g.with("language", "gremlin-lang"); - } - } - - public static class GraphSONLangParameterizedRemoteWorld extends GraphSONLangRemoteWorld { - @Override - public boolean useParametersLiterally() { - return false; - } - } - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - public static class GraphSONRemoteComputerWorld extends RemoteComputerWorld { - public GraphSONRemoteComputerWorld() { super(createTestCluster(Serializers.GRAPHSON_V4)); } - - @Override - public GraphTraversalSource getGraphTraversalSource(final LoadGraphWith.GraphData graphData) { - final GraphTraversalSource g = super.getGraphTraversalSource(graphData); - return g.with("language", "groovy-test"); - } - } } diff --git a/gremlin-server/src/test/resources/META-INF/services/io.cucumber.core.backend.ObjectFactory b/gremlin-server/src/test/resources/META-INF/services/io.cucumber.core.backend.ObjectFactory index 409c7dc485..a609d490cb 100644 --- a/gremlin-server/src/test/resources/META-INF/services/io.cucumber.core.backend.ObjectFactory +++ b/gremlin-server/src/test/resources/META-INF/services/io.cucumber.core.backend.ObjectFactory @@ -4,6 +4,3 @@ org.apache.tinkerpop.gremlin.driver.remote.GraphBinaryLangBulkedRemoteFeatureTes org.apache.tinkerpop.gremlin.driver.remote.GraphBinaryGroovyRemoteFeatureTest$RemoteGuiceFactory org.apache.tinkerpop.gremlin.driver.remote.GraphBinaryGroovyRemoteParameterizedFeatureTest$RemoteGuiceFactory org.apache.tinkerpop.gremlin.driver.remote.GraphBinaryRemoteComputerFeatureTest$RemoteGuiceFactory -org.apache.tinkerpop.gremlin.driver.remote.GraphSONLangRemoteFeatureTest$RemoteGuiceFactory -org.apache.tinkerpop.gremlin.driver.remote.GraphSONLangRemoteParameterizedFeatureTest$RemoteGuiceFactory -org.apache.tinkerpop.gremlin.driver.remote.GraphSONRemoteComputerFeatureTest$RemoteGuiceFactory
