This is an automated email from the ASF dual-hosted git repository. kenhuuu pushed a commit to branch master-http-final in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit f272501f9841bb9ed263c17877f7f442573942d1 Author: Ken Hu <[email protected]> AuthorDate: Wed Oct 9 16:16:31 2024 -0700 Add data list back to result object in GraphSONv4. --- .../server/GremlinServerAuditLogIntegrateTest.java | 3 +- .../server/GremlinServerAuthzIntegrateTest.java | 3 +- .../server/GremlinServerHttpIntegrateTest.java | 85 +++++++++++----------- ...tractGremlinServerChannelizerIntegrateTest.java | 3 +- .../ser/AbstractGraphSONMessageSerializerV4.java | 16 +++- .../tinkerpop/gremlin/util/ser/SerTokens.java | 1 + .../util/ser/GraphSONMessageSerializerV4Test.java | 15 ++-- .../GraphSONUntypedMessageSerializerV4Test.java | 15 ++-- 8 files changed, 78 insertions(+), 63 deletions(-) diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuditLogIntegrateTest.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuditLogIntegrateTest.java index c26febfbd4..65126c7db2 100644 --- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuditLogIntegrateTest.java +++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuditLogIntegrateTest.java @@ -38,6 +38,7 @@ import org.apache.tinkerpop.gremlin.server.auth.SimpleAuthenticator; import org.apache.tinkerpop.gremlin.server.channel.HttpChannelizer; import org.apache.tinkerpop.gremlin.server.handler.HttpBasicAuthenticationHandler; import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONTokens; +import org.apache.tinkerpop.gremlin.util.ser.SerTokens; import org.apache.tinkerpop.shaded.jackson.databind.JsonNode; import org.apache.tinkerpop.shaded.jackson.databind.ObjectMapper; import org.junit.AfterClass; @@ -258,7 +259,7 @@ public class GremlinServerAuditLogIntegrateTest extends AbstractGremlinServerInt assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertEquals(1, node.get("result").get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).intValue()); + assertEquals(1, node.get("result").get(SerTokens.TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).intValue()); } // wait for logger to flush - (don't think there is a way to detect this) diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuthzIntegrateTest.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuthzIntegrateTest.java index 21419b93f8..d5a0947f24 100644 --- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuthzIntegrateTest.java +++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuthzIntegrateTest.java @@ -35,6 +35,7 @@ import org.apache.tinkerpop.gremlin.server.auth.SimpleAuthenticator; import org.apache.tinkerpop.gremlin.server.authz.AllowListAuthorizer; import org.apache.tinkerpop.gremlin.server.handler.HttpBasicAuthenticationHandler; import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONTokens; +import org.apache.tinkerpop.gremlin.util.ser.SerTokens; import org.apache.tinkerpop.shaded.jackson.databind.JsonNode; import org.apache.tinkerpop.shaded.jackson.databind.ObjectMapper; import org.junit.AfterClass; @@ -147,7 +148,7 @@ public class GremlinServerAuthzIntegrateTest extends AbstractGremlinServerIntegr assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertEquals(1, node.get("result").get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).intValue()); + assertEquals(1, node.get("result").get(SerTokens.TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).intValue()); } } } diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerHttpIntegrateTest.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerHttpIntegrateTest.java index 63adb30f2b..0ebcc28473 100644 --- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerHttpIntegrateTest.java +++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerHttpIntegrateTest.java @@ -78,6 +78,7 @@ import static org.apache.tinkerpop.gremlin.util.Tokens.ARGS_MATERIALIZE_PROPERTI import static org.apache.tinkerpop.gremlin.util.Tokens.MATERIALIZE_PROPERTIES_ALL; import static org.apache.tinkerpop.gremlin.util.Tokens.MATERIALIZE_PROPERTIES_TOKENS; import static org.apache.tinkerpop.gremlin.util.Tokens.TIMEOUT_MS; +import static org.apache.tinkerpop.gremlin.util.ser.SerTokens.TOKEN_DATA; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.Is.is; import static org.hamcrest.core.StringRegularExpression.matchesRegex; @@ -303,7 +304,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertEquals(1, node.get("result").get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).intValue()); + assertEquals(1, node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).intValue()); } } @@ -320,7 +321,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertEquals(1, node.get("result").get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).intValue()); + assertEquals(1, node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).intValue()); } } @@ -335,7 +336,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertEquals(20, node.get("result").get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).intValue()); + assertEquals(20, node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).intValue()); } } @@ -350,7 +351,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertEquals(111, node.get("result").get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).intValue()); + assertEquals(111, node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).intValue()); } } @@ -368,7 +369,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - gremlinLangResult = node.get("result").get(GraphSONTokens.VALUEPROP).toString(); + gremlinLangResult = node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).toString(); } httppost.setEntity(new StringEntity("{\"gremlin\":\"g.V()\",\"language\":\"gremlin-groovy\",\"g\":\"gmodern\"}", Consts.UTF_8)); @@ -377,7 +378,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - gremlinGroovyResult = node.get("result").get(GraphSONTokens.VALUEPROP).toString(); + gremlinGroovyResult = node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).toString(); } assertEquals(gremlinGroovyResult, gremlinLangResult); @@ -397,7 +398,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - firstResult = node.get("result").get(GraphSONTokens.VALUEPROP).toString(); + firstResult = node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).toString(); } httppost.setEntity(new StringEntity("{\"gremlin\":\"g.V()\",\"g\":\"gmodern\"}", Consts.UTF_8)); @@ -413,7 +414,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - secondResult = node.get("result").get(GraphSONTokens.VALUEPROP).toString(); + secondResult = node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).toString(); } assertEquals(firstResult, secondResult); @@ -430,7 +431,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertEquals(6, node.get("result").get(GraphSONTokens.VALUEPROP).size()); + assertEquals(6, node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).size()); } } @@ -466,7 +467,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertEquals(1, node.get("result").get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).intValue()); + assertEquals(1, node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).intValue()); } } @@ -484,7 +485,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertEquals(Instant.MAX, Instant.parse(node.get("result").get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).asText())); + assertEquals(Instant.MAX, Instant.parse(node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).asText())); } } @@ -500,7 +501,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertEquals(1, node.get("result").get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).intValue()); + assertEquals(1, node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).intValue()); } final HttpGet httpget = new HttpGet(TestClientFactory.createURLString("?gremlin=g.V().count()")); @@ -514,7 +515,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertEquals(1, node.get("result").get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).intValue()); + assertEquals(1, node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).intValue()); } } } */ @@ -532,7 +533,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertEquals(1, node.get("result").get(GraphSONTokens.VALUEPROP).size()); + assertEquals(1, node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).size()); } } @@ -548,7 +549,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertEquals(6, node.get("result").get(GraphSONTokens.VALUEPROP).size()); + assertEquals(6, node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).size()); } } @@ -564,7 +565,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode resultJson = mapper.readTree(json); - final JsonNode data = resultJson.get("result"); + final JsonNode data = resultJson.get("result").get(TOKEN_DATA); assertEquals(1, data.get(GraphSONTokens.VALUEPROP).size()); assertEquals(6, data.get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).get(GraphSONTokens.VERTICES).size()); @@ -584,9 +585,9 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertEquals(6, node.get("result").get(GraphSONTokens.VALUEPROP).size()); + assertEquals(6, node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).size()); assertEquals(GraphSONTokens.VERTEX, - node.get("result").get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).get(GraphSONTokens.LABEL).get(0).textValue()); + node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).get(GraphSONTokens.LABEL).get(0).textValue()); } } @@ -602,7 +603,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertEquals(20, node.get("result").get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).intValue()); + assertEquals(20, node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).intValue()); } } @@ -618,7 +619,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertEquals(10, node.get("result").get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).intValue()); + assertEquals(10, node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).intValue()); } } @@ -634,7 +635,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertEquals(10.5d, node.get("result").get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).doubleValue(), 0.0001); + assertEquals(10.5d, node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).doubleValue(), 0.0001); } } @@ -650,7 +651,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertEquals("10", node.get("result").get(GraphSONTokens.VALUEPROP).get(0).textValue()); + assertEquals("10", node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(0).textValue()); } } @@ -666,7 +667,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertThat(node.get("result").get(GraphSONTokens.VALUEPROP).get(0).booleanValue(), is(true)); + assertThat(node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(0).booleanValue(), is(true)); } } @@ -682,7 +683,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertThat(node.get("result").get(GraphSONTokens.VALUEPROP).get(0).isNull(), is(true)); + assertThat(node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(0).isNull(), is(true)); } } @@ -698,10 +699,10 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertThat(node.get("result").get(GraphSONTokens.VALUEPROP).isArray(), is(true)); - assertEquals(1, node.get("result").get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).intValue()); - assertEquals(2, node.get("result").get(GraphSONTokens.VALUEPROP).get(1).get(GraphSONTokens.VALUEPROP).intValue()); - assertEquals(3, node.get("result").get(GraphSONTokens.VALUEPROP).get(2).get(GraphSONTokens.VALUEPROP).intValue()); + assertThat(node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).isArray(), is(true)); + assertEquals(1, node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).intValue()); + assertEquals(2, node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(1).get(GraphSONTokens.VALUEPROP).intValue()); + assertEquals(3, node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(2).get(GraphSONTokens.VALUEPROP).intValue()); } } @@ -717,8 +718,8 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertEquals("g:Map", node.get("result").get(GraphSONTokens.VALUEPROP).get(0).get("@type").asText()); - assertEquals(1, node.get("result").get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).get(1).get(GraphSONTokens.VALUEPROP).asInt()); + assertEquals("g:Map", node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(0).get("@type").asText()); + assertEquals(1, node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).get(1).get(GraphSONTokens.VALUEPROP).asInt()); } } @@ -772,7 +773,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertEquals(0, node.get("result").get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).asInt()); + assertEquals(0, node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).asInt()); } } @@ -789,7 +790,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertEquals(0, node.get("result").get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).asInt()); + assertEquals(0, node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).asInt()); } } @@ -820,7 +821,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals(SerTokens.MIME_JSON, response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertEquals(0, node.get("result").get(0).asInt()); + assertEquals(0, node.get("result").get(TOKEN_DATA).get(0).asInt()); } } @@ -850,7 +851,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertEquals("2018-03-22T00:35:44.741+16:00", node.get("result").get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).textValue()); + assertEquals("2018-03-22T00:35:44.741+16:00", node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).textValue()); } } @@ -920,9 +921,9 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertEquals(8, node.get("result").get(GraphSONTokens.VALUEPROP).get(8).get(GraphSONTokens.VALUEPROP).intValue()); - assertEquals("ten", node.get("result").get(GraphSONTokens.VALUEPROP).get(10).textValue()); - assertEquals("new chunk", node.get("result").get(GraphSONTokens.VALUEPROP).get(16).textValue()); + assertEquals(8, node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(8).get(GraphSONTokens.VALUEPROP).intValue()); + assertEquals("ten", node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(10).textValue()); + assertEquals("new chunk", node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(16).textValue()); final Header[] footers = getTrailingHeaders(response); assertEquals(1, footers.length); @@ -1102,7 +1103,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertEquals(0, node.get("result").get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).intValue()); + assertEquals(0, node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).intValue()); Assert.assertThat(node.get("status").get("message").textValue(), startsWith("some error")); assertEquals(500, node.get("status").get("code").intValue()); @@ -1149,7 +1150,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals(Serializers.GRAPHSON_V4.getValue(), response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertEquals(10.5d, node.get("result").get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).doubleValue(), 0.0001); + assertEquals(10.5d, node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).doubleValue(), 0.0001); } } @@ -1225,7 +1226,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra assertEquals(200, response.getStatusLine().getStatusCode()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertEquals(6, node.get("result").get(GraphSONTokens.VALUEPROP).size()); + assertEquals(6, node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).size()); } } @@ -1259,7 +1260,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertNotNull(node.get("result").get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).get(GraphSONTokens.PROPERTIES)); + assertNotNull(node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).get(GraphSONTokens.PROPERTIES)); } } @@ -1277,7 +1278,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertNull(node.get("result").get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).get(GraphSONTokens.PROPERTIES)); + assertNull(node.get("result").get(TOKEN_DATA).get(GraphSONTokens.VALUEPROP).get(0).get(GraphSONTokens.VALUEPROP).get(GraphSONTokens.PROPERTIES)); } } diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/channel/AbstractGremlinServerChannelizerIntegrateTest.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/channel/AbstractGremlinServerChannelizerIntegrateTest.java index 0852ad55b0..0b98996cb3 100644 --- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/channel/AbstractGremlinServerChannelizerIntegrateTest.java +++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/channel/AbstractGremlinServerChannelizerIntegrateTest.java @@ -38,6 +38,7 @@ import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; import org.apache.http.util.EntityUtils; +import org.apache.tinkerpop.gremlin.util.ser.SerTokens; import org.apache.tinkerpop.shaded.jackson.databind.JsonNode; import org.apache.tinkerpop.shaded.jackson.databind.ObjectMapper; import org.junit.Test; @@ -230,7 +231,7 @@ abstract class AbstractGremlinServerChannelizerIntegrateTest extends AbstractGre assertEquals("application/json", response.getEntity().getContentType().getValue()); final String json = EntityUtils.toString(response.getEntity()); final JsonNode node = mapper.readTree(json); - assertEquals(result, node.get("result").get("@value").get(0).get("@value").intValue()); + assertEquals(result, node.get("result").get(SerTokens.TOKEN_DATA).get("@value").get(0).get("@value").intValue()); } } } diff --git a/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/ser/AbstractGraphSONMessageSerializerV4.java b/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/ser/AbstractGraphSONMessageSerializerV4.java index 4b6939262b..48b0b28bd2 100644 --- a/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/ser/AbstractGraphSONMessageSerializerV4.java +++ b/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/ser/AbstractGraphSONMessageSerializerV4.java @@ -130,7 +130,7 @@ public abstract class AbstractGraphSONMessageSerializerV4 extends AbstractMessag ? mapper.writeValueAsBytes(new ResponseMessage.ResponseMessageFooter(responseMessage, isTyped())) : new byte[0]; // skip closing } - final int headerLen = header.length - (isTyped() ? 3 : 2); + final int headerLen = header.length - (isTyped() ? 4 : 3); final int bufSize = headerLen + data.length + (writeFullMessage ? footer.length - 1 : 0); encodedMessage = allocator.buffer(bufSize).writeBytes(header, 0, headerLen).writeBytes(data); @@ -378,6 +378,10 @@ public abstract class AbstractGraphSONMessageSerializerV4 extends AbstractMessag GraphSONUtil.writeEndObject(responseMessage, jsonGenerator, typeSerializer); jsonGenerator.writeFieldName(SerTokens.TOKEN_RESULT); + + GraphSONUtil.writeStartObject(responseMessage, jsonGenerator, typeSerializer); + jsonGenerator.writeFieldName(SerTokens.TOKEN_DATA); + final List<Object> result = responseMessage.getResult().getData(); if (result != null) { serializerProvider.findTypedValueSerializer(result.getClass(), true, null).serialize(result, jsonGenerator, serializerProvider); @@ -386,6 +390,7 @@ public abstract class AbstractGraphSONMessageSerializerV4 extends AbstractMessag } GraphSONUtil.writeEndObject(responseMessage, jsonGenerator, typeSerializer); + GraphSONUtil.writeEndObject(responseMessage, jsonGenerator, typeSerializer); } } @@ -413,8 +418,11 @@ public abstract class AbstractGraphSONMessageSerializerV4 extends AbstractMessag final ResponseMessage responseMessage = responseMessageHeader.getResponseMessage(); GraphSONUtil.writeStartObject(responseMessage, jsonGenerator, typeSerializer); - jsonGenerator.writeFieldName(SerTokens.TOKEN_RESULT); + + GraphSONUtil.writeStartObject(responseMessage, jsonGenerator, typeSerializer); + jsonGenerator.writeFieldName(SerTokens.TOKEN_DATA); + jsonGenerator.writeObject(Collections.emptyList()); // jsonGenerator will add 2 closing } @@ -449,7 +457,7 @@ public abstract class AbstractGraphSONMessageSerializerV4 extends AbstractMessag GraphSONUtil.writeStartObject(responseMessage, jsonGenerator, typeSerializer); // close result field. array inside object for types, just array for untyped - jsonGenerator.writeRaw(responseMessageFooter.getTyped() ? "]}," : "],"); + jsonGenerator.writeRaw(responseMessageFooter.getTyped() ? "]}}," : "]},"); jsonGenerator.writeFieldName(SerTokens.TOKEN_STATUS); GraphSONUtil.writeStartObject(responseMessage, jsonGenerator, typeSerializer); @@ -476,7 +484,7 @@ public abstract class AbstractGraphSONMessageSerializerV4 extends AbstractMessag final Map<String, Object> status = (Map<String, Object>) data.get(SerTokens.TOKEN_STATUS); ResponseMessage.Builder response = ResponseMessage.build() .code(HttpResponseStatus.valueOf((Integer) status.get(SerTokens.TOKEN_CODE))) - .result((List) data.get(SerTokens.TOKEN_RESULT)); + .result((List) ((Map) data.get(SerTokens.TOKEN_RESULT)).get(SerTokens.TOKEN_DATA)); if (null != status.get(SerTokens.TOKEN_EXCEPTION)) { response.exception(String.valueOf(status.get(SerTokens.TOKEN_EXCEPTION))); diff --git a/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/ser/SerTokens.java b/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/ser/SerTokens.java index 583b8520dd..5354082ba3 100644 --- a/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/ser/SerTokens.java +++ b/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/ser/SerTokens.java @@ -27,6 +27,7 @@ public final class SerTokens { public static final String TOKEN_RESULT = "result"; public static final String TOKEN_STATUS = "status"; public static final String TOKEN_CODE = "code"; + public static final String TOKEN_DATA = "data"; public static final String TOKEN_EXCEPTION = "exception"; public static final String TOKEN_MESSAGE = "message"; public static final String TOKEN_GREMLIN = "gremlin"; diff --git a/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/util/ser/GraphSONMessageSerializerV4Test.java b/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/util/ser/GraphSONMessageSerializerV4Test.java index e0407c7024..81138b8fda 100644 --- a/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/util/ser/GraphSONMessageSerializerV4Test.java +++ b/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/util/ser/GraphSONMessageSerializerV4Test.java @@ -53,6 +53,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import static org.apache.tinkerpop.gremlin.util.ser.SerTokens.TOKEN_DATA; import static org.junit.Assert.assertEquals; @SuppressWarnings("unchecked") @@ -87,9 +88,9 @@ public class GraphSONMessageSerializerV4Test { final JsonNode node = mapper.readTree(json); - assertEquals("header", node.get("result").get("@value").get(0).textValue()); - assertEquals("footer", node.get("result").get("@value").get(6).textValue()); - assertEquals(8, node.get("result").get("@value").size()); + assertEquals("header", node.get("result").get(TOKEN_DATA).get("@value").get(0).textValue()); + assertEquals("footer", node.get("result").get(TOKEN_DATA).get("@value").get(6).textValue()); + assertEquals(8, node.get("result").get(TOKEN_DATA).get("@value").size()); assertEquals("OK", node.get("status").get("message").asText()); assertEquals(200, node.get("status").get("code").asInt()); @@ -114,7 +115,7 @@ public class GraphSONMessageSerializerV4Test { final JsonNode node = mapper.readTree(json); - assertEquals(0, node.get("result").get("@value").size()); + assertEquals(0, node.get("result").get(TOKEN_DATA).get("@value").size()); assertEquals("OK", node.get("status").get("message").asText()); assertEquals(200, node.get("status").get("code").asInt()); @@ -139,7 +140,7 @@ public class GraphSONMessageSerializerV4Test { final JsonNode node = mapper.readTree(json); - assertEquals(0, node.get("result").get("@value").size()); + assertEquals(0, node.get("result").get(TOKEN_DATA).get("@value").size()); assertEquals("OK", node.get("status").get("message").asText()); assertEquals(200, node.get("status").get("code").asInt()); @@ -173,9 +174,9 @@ public class GraphSONMessageSerializerV4Test { final JsonNode node = mapper.readTree(json); - assertEquals("header", node.get("result").get("@value").get(0).textValue()); + assertEquals("header", node.get("result").get(TOKEN_DATA).get("@value").get(0).textValue()); // 6 items in first 3 chunks - assertEquals(6, node.get("result").get("@value").size()); + assertEquals(6, node.get("result").get(TOKEN_DATA).get("@value").size()); assertEquals("SERVER_ERROR", node.get("status").get("message").asText()); assertEquals(500, node.get("status").get("code").asInt()); diff --git a/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/util/ser/GraphSONUntypedMessageSerializerV4Test.java b/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/util/ser/GraphSONUntypedMessageSerializerV4Test.java index 1c2aa3d80f..50eabe26f8 100644 --- a/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/util/ser/GraphSONUntypedMessageSerializerV4Test.java +++ b/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/util/ser/GraphSONUntypedMessageSerializerV4Test.java @@ -33,6 +33,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import static org.apache.tinkerpop.gremlin.util.ser.SerTokens.TOKEN_DATA; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; @@ -65,9 +66,9 @@ public class GraphSONUntypedMessageSerializerV4Test { final JsonNode node = mapper.readTree(json); - assertEquals("header", node.get("result").get(0).textValue()); - assertEquals("footer", node.get("result").get(6).textValue()); - assertEquals(8, node.get("result").size()); + assertEquals("header", node.get("result").get(TOKEN_DATA).get(0).textValue()); + assertEquals("footer", node.get("result").get(TOKEN_DATA).get(6).textValue()); + assertEquals(8, node.get("result").get(TOKEN_DATA).size()); assertNull(node.get("status").get("message")); assertEquals(200, node.get("status").get("code").asInt()); @@ -91,7 +92,7 @@ public class GraphSONUntypedMessageSerializerV4Test { final JsonNode node = mapper.readTree(json); - assertEquals(0, node.get("result").size()); + assertEquals(0, node.get("result").get(TOKEN_DATA).size()); assertNull(node.get("status").get("message")); assertEquals(200, node.get("status").get("code").asInt()); @@ -116,7 +117,7 @@ public class GraphSONUntypedMessageSerializerV4Test { final JsonNode node = mapper.readTree(json); - assertEquals(0, node.get("result").size()); + assertEquals(0, node.get("result").get(TOKEN_DATA).size()); assertEquals("OK", node.get("status").get("message").asText()); assertEquals(200, node.get("status").get("code").asInt()); @@ -150,9 +151,9 @@ public class GraphSONUntypedMessageSerializerV4Test { final JsonNode node = mapper.readTree(json); - assertEquals("header", node.get("result").get(0).textValue()); + assertEquals("header", node.get("result").get(TOKEN_DATA).get(0).textValue()); // 6 items in first 3 chunks - assertEquals(6, node.get("result").size()); + assertEquals(6, node.get("result").get(TOKEN_DATA).size()); assertEquals("SERVER_ERROR", node.get("status").get("message").asText()); assertEquals(500, node.get("status").get("code").asInt());
