From d59669d4ee9dd5dcad6b59ad320112b567bca3bf Mon Sep 17 00:00:00 2001 From: M <1216063060@qq.com> Date: Mon, 13 Nov 2023 16:02:24 +0800 Subject: [PATCH 01/20] feat: support edgeexistence api --- .../api/traverser/EdgeExistenceAPI.java | 57 ++++++++++++++++ .../hugegraph/driver/TraverserManager.java | 9 +++ .../apache/hugegraph/api/ApiTestSuite.java | 2 + .../org/apache/hugegraph/api/BaseApiTest.java | 1 + .../api/traverser/EdgeExistenceAPITest.java | 68 +++++++++++++++++++ .../api/traverser/TraverserApiTest.java | 3 + 6 files changed, 140 insertions(+) create mode 100644 hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPI.java create mode 100644 hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPITest.java diff --git a/hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPI.java b/hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPI.java new file mode 100644 index 000000000..80094a9a6 --- /dev/null +++ b/hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPI.java @@ -0,0 +1,57 @@ +/* + * 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.hugegraph.api.traverser; + + +import org.apache.hugegraph.api.graph.GraphAPI; +import org.apache.hugegraph.client.RestClient; +import org.apache.hugegraph.rest.RestResult; +import org.apache.hugegraph.structure.graph.Edge; + +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +public class EdgeExistenceAPI extends TraversersAPI { + + public EdgeExistenceAPI(RestClient client, String graph) { + super(client, graph); + } + + @Override + protected String type() { + return "edgeexistence"; + } + + public List get(Object sourceId, Object targetId, String edgeLabel, + String sortValues, long limit) { + String source = GraphAPI.formatVertexId(sourceId, false); + String target = GraphAPI.formatVertexId(targetId, false); + + checkLimit((int) limit); + + Map params = new LinkedHashMap<>(); + params.put("source", source); + params.put("target", target); + params.put("label", edgeLabel); + params.put("sortValues", sortValues); + params.put("limit", limit); + RestResult result = this.client.get(this.path(), params); + return result.readList(this.type(), Edge.class); + } +} diff --git a/hugegraph-client/src/main/java/org/apache/hugegraph/driver/TraverserManager.java b/hugegraph-client/src/main/java/org/apache/hugegraph/driver/TraverserManager.java index 735046a7f..c2c2d951b 100644 --- a/hugegraph-client/src/main/java/org/apache/hugegraph/driver/TraverserManager.java +++ b/hugegraph-client/src/main/java/org/apache/hugegraph/driver/TraverserManager.java @@ -45,6 +45,7 @@ import org.apache.hugegraph.api.traverser.TemplatePathsAPI; import org.apache.hugegraph.api.traverser.VerticesAPI; import org.apache.hugegraph.api.traverser.WeightedShortestPathAPI; +import org.apache.hugegraph.api.traverser.EdgeExistenceAPI; import org.apache.hugegraph.client.RestClient; import org.apache.hugegraph.structure.graph.Edge; import org.apache.hugegraph.structure.graph.Edges; @@ -98,6 +99,7 @@ public class TraverserManager { private PersonalRankAPI personalRankAPI; private VerticesAPI verticesAPI; private EdgesAPI edgesAPI; + private EdgeExistenceAPI edgeExistenceAPI; public TraverserManager(RestClient client, GraphManager graphManager) { this.graphManager = graphManager; @@ -124,6 +126,7 @@ public TraverserManager(RestClient client, GraphManager graphManager) { this.personalRankAPI = new PersonalRankAPI(client, graph); this.verticesAPI = new VerticesAPI(client, graph); this.edgesAPI = new EdgesAPI(client, graph); + this.edgeExistenceAPI = new EdgeExistenceAPI(client, graph); } public double jaccardSimilarity(Object vertexId, Object otherId) { @@ -538,4 +541,10 @@ public Iterator iteratorEdges(Shard shard, int sizePerPage) { return this.edges(shard, page, sizePerPage); }); } + + public List edgeExistence(Object sourceId, Object targetId, String edgeLabel, + String sortValues, long limit){ + return this.edgeExistenceAPI.get(sourceId, targetId, edgeLabel, + sortValues, limit); + } } diff --git a/hugegraph-client/src/test/java/org/apache/hugegraph/api/ApiTestSuite.java b/hugegraph-client/src/test/java/org/apache/hugegraph/api/ApiTestSuite.java index 6fdb3c537..c9edba73f 100644 --- a/hugegraph-client/src/test/java/org/apache/hugegraph/api/ApiTestSuite.java +++ b/hugegraph-client/src/test/java/org/apache/hugegraph/api/ApiTestSuite.java @@ -44,6 +44,7 @@ import org.apache.hugegraph.api.traverser.SingleSourceShortestPathApiTest; import org.apache.hugegraph.api.traverser.TemplatePathsApiTest; import org.apache.hugegraph.api.traverser.WeightedShortestPathApiTest; +import org.apache.hugegraph.api.traverser.EdgeExistenceAPITest; import org.junit.runner.RunWith; import org.junit.runners.Suite; @@ -84,6 +85,7 @@ FusiformSimilarityApiTest.class, NeighborRankApiTest.class, PersonalRankApiTest.class, + EdgeExistenceAPITest.class, TargetApiTest.class, GroupApiTest.class, diff --git a/hugegraph-client/src/test/java/org/apache/hugegraph/api/BaseApiTest.java b/hugegraph-client/src/test/java/org/apache/hugegraph/api/BaseApiTest.java index 37e88622e..aca50e25a 100644 --- a/hugegraph-client/src/test/java/org/apache/hugegraph/api/BaseApiTest.java +++ b/hugegraph-client/src/test/java/org/apache/hugegraph/api/BaseApiTest.java @@ -31,6 +31,7 @@ import org.apache.hugegraph.api.schema.SchemaAPI; import org.apache.hugegraph.api.schema.VertexLabelAPI; import org.apache.hugegraph.api.task.TaskAPI; +import org.apache.hugegraph.api.traverser.EdgeExistenceAPI; import org.apache.hugegraph.api.variables.VariablesAPI; import org.apache.hugegraph.api.version.VersionAPI; import org.apache.hugegraph.client.RestClient; diff --git a/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPITest.java b/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPITest.java new file mode 100644 index 000000000..d88ac6c66 --- /dev/null +++ b/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPITest.java @@ -0,0 +1,68 @@ +/* + * 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.hugegraph.api.traverser; + + +import org.apache.hugegraph.api.BaseApiTest; +import org.apache.hugegraph.structure.graph.Edge; +import org.apache.hugegraph.testutil.Assert; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.List; + +public class EdgeExistenceAPITest extends TraverserApiTest{ + + @BeforeClass + public static void prepareSchemaAndGraph() { + BaseApiTest.initPropertyKey(); + BaseApiTest.initVertexLabel(); + BaseApiTest.initEdgeLabel(); + BaseApiTest.initIndexLabel(); + BaseApiTest.initVertex(); + BaseApiTest.initEdge(); + } + + @Test + public void testEdgeExistenceGet() { + Object markoId = getVertexId("person", "name", "marko"); + Object vadasId = getVertexId("person", "name", "vadas"); + + List edges = edgeExistenceAPI.get(markoId, vadasId, + "knows", "", 100); + + Assert.assertEquals(1, edges.size()); + String id = edges.get(0).id(); + + Assert.assertTrue(id.contains("marko")); + Assert.assertTrue(id.contains("vadas")); + + Object lopId = getVertexId("software", "name", "lop"); + + edges = edgeExistenceAPI.get(lopId, vadasId, + "knows", "", 100); + Assert.assertEquals(0, edges.size()); + + Object joshId = getVertexId("person", "name", "josh"); + Object rippleId = getVertexId("person", "name", "ripple"); + + edges = edgeExistenceAPI.get(joshId, rippleId, + "created", "", 100); + Assert.assertEquals(1, edges.size()); + } +} diff --git a/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/TraverserApiTest.java b/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/TraverserApiTest.java index 2a02dd10d..f6ab77156 100644 --- a/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/TraverserApiTest.java +++ b/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/TraverserApiTest.java @@ -49,6 +49,7 @@ public class TraverserApiTest extends BaseApiTest { protected static VerticesAPI verticesAPI; protected static EdgesAPI edgesAPI; + protected static EdgeExistenceAPI edgeExistenceAPI; @BeforeClass public static void init() { @@ -82,5 +83,7 @@ public static void init() { verticesAPI = new VerticesAPI(client, GRAPH); edgesAPI = new EdgesAPI(client, GRAPH); + + edgeExistenceAPI = new EdgeExistenceAPI(client, GRAPH); } } From c3e2a7b1a4df2705cb70bab0e8c40c9575af4e00 Mon Sep 17 00:00:00 2001 From: M <1216063060@qq.com> Date: Thu, 30 Nov 2023 18:30:53 +0800 Subject: [PATCH 02/20] chore --- .../java/org/apache/hugegraph/driver/TraverserManager.java | 5 ++--- .../hugegraph/api/traverser/EdgeExistenceAPITest.java | 6 ++---- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/hugegraph-client/src/main/java/org/apache/hugegraph/driver/TraverserManager.java b/hugegraph-client/src/main/java/org/apache/hugegraph/driver/TraverserManager.java index c2c2d951b..b8b5b9ed3 100644 --- a/hugegraph-client/src/main/java/org/apache/hugegraph/driver/TraverserManager.java +++ b/hugegraph-client/src/main/java/org/apache/hugegraph/driver/TraverserManager.java @@ -543,8 +543,7 @@ public Iterator iteratorEdges(Shard shard, int sizePerPage) { } public List edgeExistence(Object sourceId, Object targetId, String edgeLabel, - String sortValues, long limit){ - return this.edgeExistenceAPI.get(sourceId, targetId, edgeLabel, - sortValues, limit); + String sortValues, int limit){ + return this.edgeExistenceAPI.get(sourceId, targetId, edgeLabel, sortValues, limit); } } diff --git a/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPITest.java b/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPITest.java index d88ac6c66..4d4fea2bb 100644 --- a/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPITest.java +++ b/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPITest.java @@ -54,15 +54,13 @@ public void testEdgeExistenceGet() { Object lopId = getVertexId("software", "name", "lop"); - edges = edgeExistenceAPI.get(lopId, vadasId, - "knows", "", 100); + edges = edgeExistenceAPI.get(lopId, vadasId, "knows", "", 100); Assert.assertEquals(0, edges.size()); Object joshId = getVertexId("person", "name", "josh"); Object rippleId = getVertexId("person", "name", "ripple"); - edges = edgeExistenceAPI.get(joshId, rippleId, - "created", "", 100); + edges = edgeExistenceAPI.get(joshId, rippleId, "created", "", 100); Assert.assertEquals(1, edges.size()); } } From d489507c904876a78c88b969982395d5afff1962 Mon Sep 17 00:00:00 2001 From: M <1216063060@qq.com> Date: Thu, 30 Nov 2023 19:02:00 +0800 Subject: [PATCH 03/20] add new version api --- .../hugegraph/api/traverser/EdgeExistenceAPI.java | 13 ++++++++----- .../apache/hugegraph/driver/TraverserManager.java | 9 ++++++++- .../api/traverser/EdgeExistenceAPITest.java | 6 +++--- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPI.java b/hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPI.java index 80094a9a6..0f0e2e979 100644 --- a/hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPI.java +++ b/hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPI.java @@ -22,6 +22,7 @@ import org.apache.hugegraph.client.RestClient; import org.apache.hugegraph.rest.RestResult; import org.apache.hugegraph.structure.graph.Edge; +import org.apache.logging.log4j.util.Strings; import java.util.LinkedHashMap; import java.util.List; @@ -39,18 +40,20 @@ protected String type() { } public List get(Object sourceId, Object targetId, String edgeLabel, - String sortValues, long limit) { + String sortValues, Long limit) { String source = GraphAPI.formatVertexId(sourceId, false); String target = GraphAPI.formatVertexId(targetId, false); - checkLimit((int) limit); - Map params = new LinkedHashMap<>(); params.put("source", source); params.put("target", target); params.put("label", edgeLabel); - params.put("sortValues", sortValues); - params.put("limit", limit); + if (Strings.isEmpty(sortValues)){ + params.put("sortValues", sortValues); + } + if (null != limit){ + params.put("limit", limit); + } RestResult result = this.client.get(this.path(), params); return result.readList(this.type(), Edge.class); } diff --git a/hugegraph-client/src/main/java/org/apache/hugegraph/driver/TraverserManager.java b/hugegraph-client/src/main/java/org/apache/hugegraph/driver/TraverserManager.java index b8b5b9ed3..06e651c79 100644 --- a/hugegraph-client/src/main/java/org/apache/hugegraph/driver/TraverserManager.java +++ b/hugegraph-client/src/main/java/org/apache/hugegraph/driver/TraverserManager.java @@ -544,6 +544,13 @@ public Iterator iteratorEdges(Shard shard, int sizePerPage) { public List edgeExistence(Object sourceId, Object targetId, String edgeLabel, String sortValues, int limit){ - return this.edgeExistenceAPI.get(sourceId, targetId, edgeLabel, sortValues, limit); + return this.edgeExistenceAPI.get(sourceId, targetId, edgeLabel, sortValues, (long) limit); + } + public List edgeExistence(Object sourceId, Object targetId){ + return this.edgeExistenceAPI.get(sourceId, targetId, "", "", null); + } + + public List edgeExistence(Object sourceId, Object targetId, String edgeLabel){ + return this.edgeExistenceAPI.get(sourceId, targetId, edgeLabel, null, null); } } diff --git a/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPITest.java b/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPITest.java index 4d4fea2bb..714baa99b 100644 --- a/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPITest.java +++ b/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPITest.java @@ -44,7 +44,7 @@ public void testEdgeExistenceGet() { Object vadasId = getVertexId("person", "name", "vadas"); List edges = edgeExistenceAPI.get(markoId, vadasId, - "knows", "", 100); + "knows", "", 100L); Assert.assertEquals(1, edges.size()); String id = edges.get(0).id(); @@ -54,13 +54,13 @@ public void testEdgeExistenceGet() { Object lopId = getVertexId("software", "name", "lop"); - edges = edgeExistenceAPI.get(lopId, vadasId, "knows", "", 100); + edges = edgeExistenceAPI.get(lopId, vadasId, "knows", "", 100L); Assert.assertEquals(0, edges.size()); Object joshId = getVertexId("person", "name", "josh"); Object rippleId = getVertexId("person", "name", "ripple"); - edges = edgeExistenceAPI.get(joshId, rippleId, "created", "", 100); + edges = edgeExistenceAPI.get(joshId, rippleId, "created", "", 100L); Assert.assertEquals(1, edges.size()); } } From 780981dceddd5d9ac39e117f55790019fedd80ae Mon Sep 17 00:00:00 2001 From: M <1216063060@qq.com> Date: Thu, 30 Nov 2023 19:07:10 +0800 Subject: [PATCH 04/20] fix: sortValues -> sort_values --- .../org/apache/hugegraph/api/traverser/EdgeExistenceAPI.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPI.java b/hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPI.java index 0f0e2e979..a23ebf4ee 100644 --- a/hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPI.java +++ b/hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPI.java @@ -49,7 +49,7 @@ public List get(Object sourceId, Object targetId, String edgeLabel, params.put("target", target); params.put("label", edgeLabel); if (Strings.isEmpty(sortValues)){ - params.put("sortValues", sortValues); + params.put("sort_values", sortValues); } if (null != limit){ params.put("limit", limit); From 7cebd5e98ed0bd63e0c8b4723e9290c6427bf5f2 Mon Sep 17 00:00:00 2001 From: M <1216063060@qq.com> Date: Sun, 3 Dec 2023 10:05:28 +0800 Subject: [PATCH 05/20] update commit_id --- .github/workflows/client-ci.yml | 9 +++------ .github/workflows/hubble-ci.yml | 8 +++----- .github/workflows/loader-ci.yml | 7 ++----- .github/workflows/tools-ci.yml | 2 +- 4 files changed, 9 insertions(+), 17 deletions(-) diff --git a/.github/workflows/client-ci.yml b/.github/workflows/client-ci.yml index b8c19c706..a70375a16 100644 --- a/.github/workflows/client-ci.yml +++ b/.github/workflows/client-ci.yml @@ -1,7 +1,6 @@ name: "hugegraph-client-ci" on: - workflow_dispatch: push: branches: - master @@ -24,12 +23,11 @@ jobs: env: USE_STAGE: 'true' # Whether to include the stage repository. TRAVIS_DIR: hugegraph-client/assembly/travis - # TODO: replace it with the (latest - n) commit id (n >= 15) - COMMIT_ID: be6ee386b9939dc6bd6fcbdf2274b8acc3a0a314 + COMMIT_ID: ed493f3093eab293a75cd2f539e29ca11fa6cd81 strategy: fail-fast: false matrix: - JAVA_VERSION: [ '8' ] + JAVA_VERSION: ['8'] steps: - name: Install JDK 8 uses: actions/setup-java@v3 @@ -71,7 +69,6 @@ jobs: mvn test -Dtest=FuncTestSuite - name: Upload coverage to Codecov - uses: codecov/codecov-action@v3 + uses: codecov/codecov-action@v3.0.0 with: - token: ${{ secrets.CODECOV_TOKEN }} file: target/jacoco.xml diff --git a/.github/workflows/hubble-ci.yml b/.github/workflows/hubble-ci.yml index ea186d40a..493414b07 100644 --- a/.github/workflows/hubble-ci.yml +++ b/.github/workflows/hubble-ci.yml @@ -1,7 +1,6 @@ name: "hugegraph-hubble-ci" on: - workflow_dispatch: push: branches: - master @@ -23,8 +22,8 @@ on: env: TRAVIS_DIR: hugegraph-hubble/hubble-dist/assembly/travis - # TODO: replace it with the (latest - n) commit id (n >= 15) - COMMIT_ID: be6ee386b9939dc6bd6fcbdf2274b8acc3a0a314 + # TODO: need update it later (ed493f3093eab293a75cd2f539e29ca11fa6cd81) + COMMIT_ID: ed493f3093eab293a75cd2f539e29ca11fa6cd81 jobs: hubble-ci: @@ -114,7 +113,6 @@ jobs: hubble-dist/assembly/travis/run-api-test.sh - name: Upload coverage to Codecov - uses: codecov/codecov-action@v3 + uses: codecov/codecov-action@v3.0.0 with: - token: ${{ secrets.CODECOV_TOKEN }} file: target/site/jacoco/*.xml diff --git a/.github/workflows/loader-ci.yml b/.github/workflows/loader-ci.yml index 3c676302b..ffe72f46b 100644 --- a/.github/workflows/loader-ci.yml +++ b/.github/workflows/loader-ci.yml @@ -1,7 +1,6 @@ name: "hugegraph-loader-ci" on: - workflow_dispatch: push: branches: - master @@ -26,8 +25,7 @@ jobs: USE_STAGE: 'true' # Whether to include the stage repository. TRAVIS_DIR: hugegraph-loader/assembly/travis STATIC_DIR: hugegraph-loader/assembly/static - # TODO: replace it with the (latest - n) commit id (n >= 15) - COMMIT_ID: be6ee386b9939dc6bd6fcbdf2274b8acc3a0a314 + COMMIT_ID: ed493f3093eab293a75cd2f539e29ca11fa6cd81 DB_USER: root DB_PASS: root DB_DATABASE: load_test @@ -76,7 +74,6 @@ jobs: mvn test -P kafka - name: Upload coverage to Codecov - uses: codecov/codecov-action@v3 + uses: codecov/codecov-action@v3.0.0 with: - token: ${{ secrets.CODECOV_TOKEN }} file: target/jacoco.xml diff --git a/.github/workflows/tools-ci.yml b/.github/workflows/tools-ci.yml index f00582b2e..2ba2b27be 100644 --- a/.github/workflows/tools-ci.yml +++ b/.github/workflows/tools-ci.yml @@ -25,7 +25,7 @@ jobs: USE_STAGE: 'true' # Whether to include the stage repository. TRAVIS_DIR: hugegraph-tools/assembly/travis # TODO: could we use one param to unify it? or use a action template (could use one ci file) - COMMIT_ID: be6ee386b9939dc6bd6fcbdf2274b8acc3a0a314 + COMMIT_ID: ed493f3093eab293a75cd2f539e29ca11fa6cd81 steps: - name: Install JDK 11 uses: actions/setup-java@v3 From f8098a38d0f76afc0e0f6497cfca14f38da8bd2c Mon Sep 17 00:00:00 2001 From: M <1216063060@qq.com> Date: Sun, 3 Dec 2023 10:22:16 +0800 Subject: [PATCH 06/20] fix: module dir --- .../assembly/travis/install-hugegraph-from-source.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hugegraph-client/assembly/travis/install-hugegraph-from-source.sh b/hugegraph-client/assembly/travis/install-hugegraph-from-source.sh index 2c9ea319e..3dc3dcdf9 100755 --- a/hugegraph-client/assembly/travis/install-hugegraph-from-source.sh +++ b/hugegraph-client/assembly/travis/install-hugegraph-from-source.sh @@ -32,9 +32,10 @@ git checkout "${COMMIT_ID}" mvn package -DskipTests -Dmaven.javadoc.skip=true -ntp # TODO: lack incubator after apache package release (update it later) +cd hugegraph-server TAR=$(echo apache-hugegraph-*.tar.gz) -tar zxf "${TAR}" -C ../ -cd ../ +tar zxf "${TAR}" -C ../../ +cd ../../ rm -rf "${GIT_DIR}" # TODO: lack incubator after apache package release (update it later) HTTP_SERVER_DIR=$(echo apache-hugegraph-*.*) From 324055ab0db75286f1d0da816e08fb352e77f2a8 Mon Sep 17 00:00:00 2001 From: M <1216063060@qq.com> Date: Mon, 4 Dec 2023 10:03:05 +0800 Subject: [PATCH 07/20] chore --- .../apache/hugegraph/api/traverser/EdgeExistenceAPI.java | 4 ++-- .../java/org/apache/hugegraph/driver/TraverserManager.java | 6 +++--- .../hugegraph/api/traverser/EdgeExistenceAPITest.java | 7 +++---- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPI.java b/hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPI.java index a23ebf4ee..8ea9ffcea 100644 --- a/hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPI.java +++ b/hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPI.java @@ -40,7 +40,7 @@ protected String type() { } public List get(Object sourceId, Object targetId, String edgeLabel, - String sortValues, Long limit) { + String sortValues, int limit) { String source = GraphAPI.formatVertexId(sourceId, false); String target = GraphAPI.formatVertexId(targetId, false); @@ -51,7 +51,7 @@ public List get(Object sourceId, Object targetId, String edgeLabel, if (Strings.isEmpty(sortValues)){ params.put("sort_values", sortValues); } - if (null != limit){ + if (limit > 0){ params.put("limit", limit); } RestResult result = this.client.get(this.path(), params); diff --git a/hugegraph-client/src/main/java/org/apache/hugegraph/driver/TraverserManager.java b/hugegraph-client/src/main/java/org/apache/hugegraph/driver/TraverserManager.java index 06e651c79..ad4ef8c3e 100644 --- a/hugegraph-client/src/main/java/org/apache/hugegraph/driver/TraverserManager.java +++ b/hugegraph-client/src/main/java/org/apache/hugegraph/driver/TraverserManager.java @@ -544,13 +544,13 @@ public Iterator iteratorEdges(Shard shard, int sizePerPage) { public List edgeExistence(Object sourceId, Object targetId, String edgeLabel, String sortValues, int limit){ - return this.edgeExistenceAPI.get(sourceId, targetId, edgeLabel, sortValues, (long) limit); + return this.edgeExistenceAPI.get(sourceId, targetId, edgeLabel, sortValues, limit); } public List edgeExistence(Object sourceId, Object targetId){ - return this.edgeExistenceAPI.get(sourceId, targetId, "", "", null); + return this.edgeExistenceAPI.get(sourceId, targetId, "", "", -1); } public List edgeExistence(Object sourceId, Object targetId, String edgeLabel){ - return this.edgeExistenceAPI.get(sourceId, targetId, edgeLabel, null, null); + return this.edgeExistenceAPI.get(sourceId, targetId, edgeLabel, null, -1); } } diff --git a/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPITest.java b/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPITest.java index 714baa99b..fbbcba2de 100644 --- a/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPITest.java +++ b/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPITest.java @@ -43,8 +43,7 @@ public void testEdgeExistenceGet() { Object markoId = getVertexId("person", "name", "marko"); Object vadasId = getVertexId("person", "name", "vadas"); - List edges = edgeExistenceAPI.get(markoId, vadasId, - "knows", "", 100L); + List edges = edgeExistenceAPI.get(markoId, vadasId,"knows", "", 100); Assert.assertEquals(1, edges.size()); String id = edges.get(0).id(); @@ -54,13 +53,13 @@ public void testEdgeExistenceGet() { Object lopId = getVertexId("software", "name", "lop"); - edges = edgeExistenceAPI.get(lopId, vadasId, "knows", "", 100L); + edges = edgeExistenceAPI.get(lopId, vadasId, "knows", "", 100); Assert.assertEquals(0, edges.size()); Object joshId = getVertexId("person", "name", "josh"); Object rippleId = getVertexId("person", "name", "ripple"); - edges = edgeExistenceAPI.get(joshId, rippleId, "created", "", 100L); + edges = edgeExistenceAPI.get(joshId, rippleId, "created", "", 100); Assert.assertEquals(1, edges.size()); } } From e57f62e9bfb765e9b922732c138cded523c3fe43 Mon Sep 17 00:00:00 2001 From: M <1216063060@qq.com> Date: Mon, 4 Dec 2023 10:23:44 +0800 Subject: [PATCH 08/20] fix --- .../hubble-dist/assembly/travis/download-hugegraph.sh | 5 +++-- .../assembly/travis/install-hugegraph-from-source.sh | 5 +++-- .../assembly/travis/install-hugegraph-from-source.sh | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/hugegraph-hubble/hubble-dist/assembly/travis/download-hugegraph.sh b/hugegraph-hubble/hubble-dist/assembly/travis/download-hugegraph.sh index 1a08376dd..ac4cf585c 100755 --- a/hugegraph-hubble/hubble-dist/assembly/travis/download-hugegraph.sh +++ b/hugegraph-hubble/hubble-dist/assembly/travis/download-hugegraph.sh @@ -32,7 +32,8 @@ git checkout "${COMMIT_ID}" mvn package -DskipTests -Dmaven.javadoc.skip=true -ntp # TODO: lack incubator after apache package release (update it later) +cd hugegraph-server TAR=$(echo apache-hugegraph-*.tar.gz) -cp apache-hugegraph-*.tar.gz ../ -cd ../ +cp apache-hugegraph-*.tar.gz ../../ +cd ../../ rm -rf "${GIT_DIR}" diff --git a/hugegraph-loader/assembly/travis/install-hugegraph-from-source.sh b/hugegraph-loader/assembly/travis/install-hugegraph-from-source.sh index 202f45691..61ea1c04f 100755 --- a/hugegraph-loader/assembly/travis/install-hugegraph-from-source.sh +++ b/hugegraph-loader/assembly/travis/install-hugegraph-from-source.sh @@ -29,8 +29,9 @@ cd hugegraph git checkout "${COMMIT_ID}" mvn package -DskipTests -Dmaven.javadoc.skip=true -ntp # TODO: lack incubator after apache package release (update it later) -mv apache-hugegraph-*.tar.gz ../ -cd ../ +cd hugegraph-server +mv apache-hugegraph-*.tar.gz ../../ +cd ../../ rm -rf hugegraph tar zxf apache-hugegraph-*.tar.gz diff --git a/hugegraph-tools/assembly/travis/install-hugegraph-from-source.sh b/hugegraph-tools/assembly/travis/install-hugegraph-from-source.sh index 45de8924c..0987dd739 100755 --- a/hugegraph-tools/assembly/travis/install-hugegraph-from-source.sh +++ b/hugegraph-tools/assembly/travis/install-hugegraph-from-source.sh @@ -31,9 +31,10 @@ git checkout "${COMMIT_ID}" mvn package -DskipTests -Dmaven.javadoc.skip=true -ntp # TODO: lack incubator after apache package release (update it later) +cd hugegraph-server TAR=$(echo apache-hugegraph-*.tar.gz) -tar zxf "${TAR}" -C ../ -cd ../ +tar zxf "${TAR}" -C ../../ +cd ../../ rm -rf "${GIT_DIR}" # TODO: lack incubator after apache package release (update it later) HTTP_SERVER_DIR=$(echo apache-hugegraph-*.*) From a68ca8f3f5dd631ebba8c4b4f4da91751171f772 Mon Sep 17 00:00:00 2001 From: imbajin Date: Mon, 4 Dec 2023 16:13:27 +0800 Subject: [PATCH 09/20] revert commit ID & let it pass 100 --- .github/workflows/client-ci.yml | 9 ++++++--- .github/workflows/hubble-ci.yml | 8 +++++--- .github/workflows/loader-ci.yml | 7 +++++-- .github/workflows/tools-ci.yml | 2 +- 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/.github/workflows/client-ci.yml b/.github/workflows/client-ci.yml index a70375a16..e8bda9e87 100644 --- a/.github/workflows/client-ci.yml +++ b/.github/workflows/client-ci.yml @@ -1,6 +1,7 @@ name: "hugegraph-client-ci" on: + workflow_dispatch: push: branches: - master @@ -23,11 +24,12 @@ jobs: env: USE_STAGE: 'true' # Whether to include the stage repository. TRAVIS_DIR: hugegraph-client/assembly/travis - COMMIT_ID: ed493f3093eab293a75cd2f539e29ca11fa6cd81 + # TODO: replace it with the (latest - n) commit id (n >= 15) + COMMIT_ID: be6ee386b9939dc6bd6fcbdf2274b8acc3a0a314 strategy: fail-fast: false matrix: - JAVA_VERSION: ['8'] + JAVA_VERSION: [ '8' ] steps: - name: Install JDK 8 uses: actions/setup-java@v3 @@ -69,6 +71,7 @@ jobs: mvn test -Dtest=FuncTestSuite - name: Upload coverage to Codecov - uses: codecov/codecov-action@v3.0.0 + uses: codecov/codecov-action@v with: + token: ${{ secrets.CODECOV_TOKEN }} file: target/jacoco.xml diff --git a/.github/workflows/hubble-ci.yml b/.github/workflows/hubble-ci.yml index 493414b07..ea186d40a 100644 --- a/.github/workflows/hubble-ci.yml +++ b/.github/workflows/hubble-ci.yml @@ -1,6 +1,7 @@ name: "hugegraph-hubble-ci" on: + workflow_dispatch: push: branches: - master @@ -22,8 +23,8 @@ on: env: TRAVIS_DIR: hugegraph-hubble/hubble-dist/assembly/travis - # TODO: need update it later (ed493f3093eab293a75cd2f539e29ca11fa6cd81) - COMMIT_ID: ed493f3093eab293a75cd2f539e29ca11fa6cd81 + # TODO: replace it with the (latest - n) commit id (n >= 15) + COMMIT_ID: be6ee386b9939dc6bd6fcbdf2274b8acc3a0a314 jobs: hubble-ci: @@ -113,6 +114,7 @@ jobs: hubble-dist/assembly/travis/run-api-test.sh - name: Upload coverage to Codecov - uses: codecov/codecov-action@v3.0.0 + uses: codecov/codecov-action@v3 with: + token: ${{ secrets.CODECOV_TOKEN }} file: target/site/jacoco/*.xml diff --git a/.github/workflows/loader-ci.yml b/.github/workflows/loader-ci.yml index ffe72f46b..3c676302b 100644 --- a/.github/workflows/loader-ci.yml +++ b/.github/workflows/loader-ci.yml @@ -1,6 +1,7 @@ name: "hugegraph-loader-ci" on: + workflow_dispatch: push: branches: - master @@ -25,7 +26,8 @@ jobs: USE_STAGE: 'true' # Whether to include the stage repository. TRAVIS_DIR: hugegraph-loader/assembly/travis STATIC_DIR: hugegraph-loader/assembly/static - COMMIT_ID: ed493f3093eab293a75cd2f539e29ca11fa6cd81 + # TODO: replace it with the (latest - n) commit id (n >= 15) + COMMIT_ID: be6ee386b9939dc6bd6fcbdf2274b8acc3a0a314 DB_USER: root DB_PASS: root DB_DATABASE: load_test @@ -74,6 +76,7 @@ jobs: mvn test -P kafka - name: Upload coverage to Codecov - uses: codecov/codecov-action@v3.0.0 + uses: codecov/codecov-action@v3 with: + token: ${{ secrets.CODECOV_TOKEN }} file: target/jacoco.xml diff --git a/.github/workflows/tools-ci.yml b/.github/workflows/tools-ci.yml index 2ba2b27be..f00582b2e 100644 --- a/.github/workflows/tools-ci.yml +++ b/.github/workflows/tools-ci.yml @@ -25,7 +25,7 @@ jobs: USE_STAGE: 'true' # Whether to include the stage repository. TRAVIS_DIR: hugegraph-tools/assembly/travis # TODO: could we use one param to unify it? or use a action template (could use one ci file) - COMMIT_ID: ed493f3093eab293a75cd2f539e29ca11fa6cd81 + COMMIT_ID: be6ee386b9939dc6bd6fcbdf2274b8acc3a0a314 steps: - name: Install JDK 11 uses: actions/setup-java@v3 From 3a822acadfa1cbb61713f3d97542ccf737dd45f8 Mon Sep 17 00:00:00 2001 From: M <1216063060@qq.com> Date: Tue, 5 Dec 2023 11:11:47 +0800 Subject: [PATCH 10/20] fix --- .github/workflows/client-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/client-ci.yml b/.github/workflows/client-ci.yml index e8bda9e87..b8c19c706 100644 --- a/.github/workflows/client-ci.yml +++ b/.github/workflows/client-ci.yml @@ -71,7 +71,7 @@ jobs: mvn test -Dtest=FuncTestSuite - name: Upload coverage to Codecov - uses: codecov/codecov-action@v + uses: codecov/codecov-action@v3 with: token: ${{ secrets.CODECOV_TOKEN }} file: target/jacoco.xml From 1fabba70c633cc6656c6a1852d181055ab53fbcd Mon Sep 17 00:00:00 2001 From: M <1216063060@qq.com> Date: Tue, 5 Dec 2023 11:16:10 +0800 Subject: [PATCH 11/20] Revert "fix" This reverts commit 286cbf96583f63bab16a39089b9bedd044a76978. --- .../hubble-dist/assembly/travis/download-hugegraph.sh | 5 ++--- .../assembly/travis/install-hugegraph-from-source.sh | 5 ++--- .../assembly/travis/install-hugegraph-from-source.sh | 5 ++--- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/hugegraph-hubble/hubble-dist/assembly/travis/download-hugegraph.sh b/hugegraph-hubble/hubble-dist/assembly/travis/download-hugegraph.sh index ac4cf585c..1a08376dd 100755 --- a/hugegraph-hubble/hubble-dist/assembly/travis/download-hugegraph.sh +++ b/hugegraph-hubble/hubble-dist/assembly/travis/download-hugegraph.sh @@ -32,8 +32,7 @@ git checkout "${COMMIT_ID}" mvn package -DskipTests -Dmaven.javadoc.skip=true -ntp # TODO: lack incubator after apache package release (update it later) -cd hugegraph-server TAR=$(echo apache-hugegraph-*.tar.gz) -cp apache-hugegraph-*.tar.gz ../../ -cd ../../ +cp apache-hugegraph-*.tar.gz ../ +cd ../ rm -rf "${GIT_DIR}" diff --git a/hugegraph-loader/assembly/travis/install-hugegraph-from-source.sh b/hugegraph-loader/assembly/travis/install-hugegraph-from-source.sh index 61ea1c04f..202f45691 100755 --- a/hugegraph-loader/assembly/travis/install-hugegraph-from-source.sh +++ b/hugegraph-loader/assembly/travis/install-hugegraph-from-source.sh @@ -29,9 +29,8 @@ cd hugegraph git checkout "${COMMIT_ID}" mvn package -DskipTests -Dmaven.javadoc.skip=true -ntp # TODO: lack incubator after apache package release (update it later) -cd hugegraph-server -mv apache-hugegraph-*.tar.gz ../../ -cd ../../ +mv apache-hugegraph-*.tar.gz ../ +cd ../ rm -rf hugegraph tar zxf apache-hugegraph-*.tar.gz diff --git a/hugegraph-tools/assembly/travis/install-hugegraph-from-source.sh b/hugegraph-tools/assembly/travis/install-hugegraph-from-source.sh index 0987dd739..45de8924c 100755 --- a/hugegraph-tools/assembly/travis/install-hugegraph-from-source.sh +++ b/hugegraph-tools/assembly/travis/install-hugegraph-from-source.sh @@ -31,10 +31,9 @@ git checkout "${COMMIT_ID}" mvn package -DskipTests -Dmaven.javadoc.skip=true -ntp # TODO: lack incubator after apache package release (update it later) -cd hugegraph-server TAR=$(echo apache-hugegraph-*.tar.gz) -tar zxf "${TAR}" -C ../../ -cd ../../ +tar zxf "${TAR}" -C ../ +cd ../ rm -rf "${GIT_DIR}" # TODO: lack incubator after apache package release (update it later) HTTP_SERVER_DIR=$(echo apache-hugegraph-*.*) From 86445e3ccb75d7484ec385bdd4e6f4ae538ad7eb Mon Sep 17 00:00:00 2001 From: M <1216063060@qq.com> Date: Tue, 5 Dec 2023 11:16:34 +0800 Subject: [PATCH 12/20] Revert "fix: module dir" This reverts commit a07c8648a744af34f8816015969271e7b290af51. --- .../assembly/travis/install-hugegraph-from-source.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/hugegraph-client/assembly/travis/install-hugegraph-from-source.sh b/hugegraph-client/assembly/travis/install-hugegraph-from-source.sh index 3dc3dcdf9..2c9ea319e 100755 --- a/hugegraph-client/assembly/travis/install-hugegraph-from-source.sh +++ b/hugegraph-client/assembly/travis/install-hugegraph-from-source.sh @@ -32,10 +32,9 @@ git checkout "${COMMIT_ID}" mvn package -DskipTests -Dmaven.javadoc.skip=true -ntp # TODO: lack incubator after apache package release (update it later) -cd hugegraph-server TAR=$(echo apache-hugegraph-*.tar.gz) -tar zxf "${TAR}" -C ../../ -cd ../../ +tar zxf "${TAR}" -C ../ +cd ../ rm -rf "${GIT_DIR}" # TODO: lack incubator after apache package release (update it later) HTTP_SERVER_DIR=$(echo apache-hugegraph-*.*) From ab81f9b259fe8dd0d30f5d1f946d7d4b57aeec96 Mon Sep 17 00:00:00 2001 From: M <1216063060@qq.com> Date: Thu, 7 Dec 2023 23:29:49 +0800 Subject: [PATCH 13/20] fix --- .../apache/hugegraph/api/traverser/EdgeExistenceAPI.java | 6 +++--- .../hugegraph/api/traverser/EdgeExistenceAPITest.java | 7 +++---- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPI.java b/hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPI.java index 8ea9ffcea..5ba68fb01 100644 --- a/hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPI.java +++ b/hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPI.java @@ -36,7 +36,7 @@ public EdgeExistenceAPI(RestClient client, String graph) { @Override protected String type() { - return "edgeexistence"; + return "edgeexist"; } public List get(Object sourceId, Object targetId, String edgeLabel, @@ -48,13 +48,13 @@ public List get(Object sourceId, Object targetId, String edgeLabel, params.put("source", source); params.put("target", target); params.put("label", edgeLabel); - if (Strings.isEmpty(sortValues)){ + if (!Strings.isEmpty(sortValues)){ params.put("sort_values", sortValues); } if (limit > 0){ params.put("limit", limit); } RestResult result = this.client.get(this.path(), params); - return result.readList(this.type(), Edge.class); + return result.readList("edges", Edge.class); } } diff --git a/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPITest.java b/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPITest.java index fbbcba2de..96b334697 100644 --- a/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPITest.java +++ b/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPITest.java @@ -43,13 +43,12 @@ public void testEdgeExistenceGet() { Object markoId = getVertexId("person", "name", "marko"); Object vadasId = getVertexId("person", "name", "vadas"); - List edges = edgeExistenceAPI.get(markoId, vadasId,"knows", "", 100); + List edges = edgeExistenceAPI.get(markoId, vadasId,"knows", "7JJ3CeW0", 100); Assert.assertEquals(1, edges.size()); String id = edges.get(0).id(); - Assert.assertTrue(id.contains("marko")); - Assert.assertTrue(id.contains("vadas")); + Assert.assertTrue(id.contains("marko") && id.contains("vadas")); Object lopId = getVertexId("software", "name", "lop"); @@ -57,7 +56,7 @@ public void testEdgeExistenceGet() { Assert.assertEquals(0, edges.size()); Object joshId = getVertexId("person", "name", "josh"); - Object rippleId = getVertexId("person", "name", "ripple"); + Object rippleId = getVertexId("software", "name", "ripple"); edges = edgeExistenceAPI.get(joshId, rippleId, "created", "", 100); Assert.assertEquals(1, edges.size()); From 72df58cf48b3d9ff89183c4afac9472f44a8ce8a Mon Sep 17 00:00:00 2001 From: M <1216063060@qq.com> Date: Sat, 9 Dec 2023 14:48:17 +0800 Subject: [PATCH 14/20] fix --- .../hugegraph/api/traverser/EdgeExistenceAPI.java | 4 +--- .../api/traverser/EdgeExistenceAPITest.java | 12 +++++++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPI.java b/hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPI.java index 5ba68fb01..7f0df07b4 100644 --- a/hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPI.java +++ b/hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPI.java @@ -51,9 +51,7 @@ public List get(Object sourceId, Object targetId, String edgeLabel, if (!Strings.isEmpty(sortValues)){ params.put("sort_values", sortValues); } - if (limit > 0){ - params.put("limit", limit); - } + params.put("limit", limit); RestResult result = this.client.get(this.path(), params); return result.readList("edges", Edge.class); } diff --git a/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPITest.java b/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPITest.java index 96b334697..cea91c61d 100644 --- a/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPITest.java +++ b/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPITest.java @@ -43,12 +43,15 @@ public void testEdgeExistenceGet() { Object markoId = getVertexId("person", "name", "marko"); Object vadasId = getVertexId("person", "name", "vadas"); - List edges = edgeExistenceAPI.get(markoId, vadasId,"knows", "7JJ3CeW0", 100); - + List edges = edgeExistenceAPI.get(markoId, vadasId,"", "", 100); Assert.assertEquals(1, edges.size()); + + String sortValues = edges.get(0).name(); + edges = edgeExistenceAPI.get(markoId, vadasId,"knows", sortValues, 100); String id = edges.get(0).id(); - Assert.assertTrue(id.contains("marko") && id.contains("vadas")); + Assert.assertEquals(1, edges.size()); + Assert.assertTrue(id.contains("marko") && id.contains("vadas") && id.contains(sortValues)); Object lopId = getVertexId("software", "name", "lop"); @@ -60,5 +63,8 @@ public void testEdgeExistenceGet() { edges = edgeExistenceAPI.get(joshId, rippleId, "created", "", 100); Assert.assertEquals(1, edges.size()); + + edges = edgeExistenceAPI.get(joshId, rippleId, "created", "", 0); + Assert.assertEquals(0, edges.size()); } } From 58b5112f4c5fa06ad2c1de71e0ac7032ed96fe4c Mon Sep 17 00:00:00 2001 From: M <1216063060@qq.com> Date: Sat, 9 Dec 2023 19:10:39 +0800 Subject: [PATCH 15/20] update the commit_id latest --- .github/workflows/client-ci.yml | 2 +- .github/workflows/hubble-ci.yml | 2 +- .github/workflows/loader-ci.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/client-ci.yml b/.github/workflows/client-ci.yml index b8c19c706..caccb4afc 100644 --- a/.github/workflows/client-ci.yml +++ b/.github/workflows/client-ci.yml @@ -25,7 +25,7 @@ jobs: USE_STAGE: 'true' # Whether to include the stage repository. TRAVIS_DIR: hugegraph-client/assembly/travis # TODO: replace it with the (latest - n) commit id (n >= 15) - COMMIT_ID: be6ee386b9939dc6bd6fcbdf2274b8acc3a0a314 + COMMIT_ID: c997f35b0475e94a98748dda636cb9bfa78fda77 strategy: fail-fast: false matrix: diff --git a/.github/workflows/hubble-ci.yml b/.github/workflows/hubble-ci.yml index ea186d40a..fd65a3b7b 100644 --- a/.github/workflows/hubble-ci.yml +++ b/.github/workflows/hubble-ci.yml @@ -24,7 +24,7 @@ on: env: TRAVIS_DIR: hugegraph-hubble/hubble-dist/assembly/travis # TODO: replace it with the (latest - n) commit id (n >= 15) - COMMIT_ID: be6ee386b9939dc6bd6fcbdf2274b8acc3a0a314 + COMMIT_ID: c997f35b0475e94a98748dda636cb9bfa78fda77 jobs: hubble-ci: diff --git a/.github/workflows/loader-ci.yml b/.github/workflows/loader-ci.yml index 3c676302b..f87b1df5c 100644 --- a/.github/workflows/loader-ci.yml +++ b/.github/workflows/loader-ci.yml @@ -27,7 +27,7 @@ jobs: TRAVIS_DIR: hugegraph-loader/assembly/travis STATIC_DIR: hugegraph-loader/assembly/static # TODO: replace it with the (latest - n) commit id (n >= 15) - COMMIT_ID: be6ee386b9939dc6bd6fcbdf2274b8acc3a0a314 + COMMIT_ID: c997f35b0475e94a98748dda636cb9bfa78fda77 DB_USER: root DB_PASS: root DB_DATABASE: load_test From ed9725ed8fe29670a82d6077bdbc720c3166f5ac Mon Sep 17 00:00:00 2001 From: M <1216063060@qq.com> Date: Sat, 9 Dec 2023 19:13:14 +0800 Subject: [PATCH 16/20] Revert "Revert "fix: module dir"" This reverts commit 86445e3ccb75d7484ec385bdd4e6f4ae538ad7eb. --- .../assembly/travis/install-hugegraph-from-source.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hugegraph-client/assembly/travis/install-hugegraph-from-source.sh b/hugegraph-client/assembly/travis/install-hugegraph-from-source.sh index 2c9ea319e..3dc3dcdf9 100755 --- a/hugegraph-client/assembly/travis/install-hugegraph-from-source.sh +++ b/hugegraph-client/assembly/travis/install-hugegraph-from-source.sh @@ -32,9 +32,10 @@ git checkout "${COMMIT_ID}" mvn package -DskipTests -Dmaven.javadoc.skip=true -ntp # TODO: lack incubator after apache package release (update it later) +cd hugegraph-server TAR=$(echo apache-hugegraph-*.tar.gz) -tar zxf "${TAR}" -C ../ -cd ../ +tar zxf "${TAR}" -C ../../ +cd ../../ rm -rf "${GIT_DIR}" # TODO: lack incubator after apache package release (update it later) HTTP_SERVER_DIR=$(echo apache-hugegraph-*.*) From c677b1c35d86dcddf653f9077ca2ee40391a6e2d Mon Sep 17 00:00:00 2001 From: M <1216063060@qq.com> Date: Sat, 9 Dec 2023 19:14:01 +0800 Subject: [PATCH 17/20] Revert "Revert "fix"" This reverts commit 1fabba70c633cc6656c6a1852d181055ab53fbcd. --- .../hubble-dist/assembly/travis/download-hugegraph.sh | 5 +++-- .../assembly/travis/install-hugegraph-from-source.sh | 5 +++-- .../assembly/travis/install-hugegraph-from-source.sh | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/hugegraph-hubble/hubble-dist/assembly/travis/download-hugegraph.sh b/hugegraph-hubble/hubble-dist/assembly/travis/download-hugegraph.sh index 1a08376dd..ac4cf585c 100755 --- a/hugegraph-hubble/hubble-dist/assembly/travis/download-hugegraph.sh +++ b/hugegraph-hubble/hubble-dist/assembly/travis/download-hugegraph.sh @@ -32,7 +32,8 @@ git checkout "${COMMIT_ID}" mvn package -DskipTests -Dmaven.javadoc.skip=true -ntp # TODO: lack incubator after apache package release (update it later) +cd hugegraph-server TAR=$(echo apache-hugegraph-*.tar.gz) -cp apache-hugegraph-*.tar.gz ../ -cd ../ +cp apache-hugegraph-*.tar.gz ../../ +cd ../../ rm -rf "${GIT_DIR}" diff --git a/hugegraph-loader/assembly/travis/install-hugegraph-from-source.sh b/hugegraph-loader/assembly/travis/install-hugegraph-from-source.sh index 202f45691..61ea1c04f 100755 --- a/hugegraph-loader/assembly/travis/install-hugegraph-from-source.sh +++ b/hugegraph-loader/assembly/travis/install-hugegraph-from-source.sh @@ -29,8 +29,9 @@ cd hugegraph git checkout "${COMMIT_ID}" mvn package -DskipTests -Dmaven.javadoc.skip=true -ntp # TODO: lack incubator after apache package release (update it later) -mv apache-hugegraph-*.tar.gz ../ -cd ../ +cd hugegraph-server +mv apache-hugegraph-*.tar.gz ../../ +cd ../../ rm -rf hugegraph tar zxf apache-hugegraph-*.tar.gz diff --git a/hugegraph-tools/assembly/travis/install-hugegraph-from-source.sh b/hugegraph-tools/assembly/travis/install-hugegraph-from-source.sh index 45de8924c..0987dd739 100755 --- a/hugegraph-tools/assembly/travis/install-hugegraph-from-source.sh +++ b/hugegraph-tools/assembly/travis/install-hugegraph-from-source.sh @@ -31,9 +31,10 @@ git checkout "${COMMIT_ID}" mvn package -DskipTests -Dmaven.javadoc.skip=true -ntp # TODO: lack incubator after apache package release (update it later) +cd hugegraph-server TAR=$(echo apache-hugegraph-*.tar.gz) -tar zxf "${TAR}" -C ../ -cd ../ +tar zxf "${TAR}" -C ../../ +cd ../../ rm -rf "${GIT_DIR}" # TODO: lack incubator after apache package release (update it later) HTTP_SERVER_DIR=$(echo apache-hugegraph-*.*) From c50ad36b67723cc156a92e3a1d3e4d48b896f7fd Mon Sep 17 00:00:00 2001 From: M <1216063060@qq.com> Date: Sat, 9 Dec 2023 19:17:46 +0800 Subject: [PATCH 18/20] fix --- .github/workflows/tools-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tools-ci.yml b/.github/workflows/tools-ci.yml index f00582b2e..77c09692d 100644 --- a/.github/workflows/tools-ci.yml +++ b/.github/workflows/tools-ci.yml @@ -25,7 +25,7 @@ jobs: USE_STAGE: 'true' # Whether to include the stage repository. TRAVIS_DIR: hugegraph-tools/assembly/travis # TODO: could we use one param to unify it? or use a action template (could use one ci file) - COMMIT_ID: be6ee386b9939dc6bd6fcbdf2274b8acc3a0a314 + COMMIT_ID: c997f35b0475e94a98748dda636cb9bfa78fda77 steps: - name: Install JDK 11 uses: actions/setup-java@v3 From 614bf4d8ad1bbdc2ba3eec51badbf63680253e7e Mon Sep 17 00:00:00 2001 From: imbajin Date: Tue, 12 Dec 2023 12:58:42 +0800 Subject: [PATCH 19/20] Update client-go-ci.yml --- .github/workflows/client-go-ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/client-go-ci.yml b/.github/workflows/client-go-ci.yml index 2a941a0d0..b29b6304f 100644 --- a/.github/workflows/client-go-ci.yml +++ b/.github/workflows/client-go-ci.yml @@ -23,7 +23,8 @@ jobs: env: USE_STAGE: 'true' # Whether to include the stage repository. TRAVIS_DIR: hugegraph-client/assembly/travis - COMMIT_ID: bfe9fae150446857412db23ada0dae9d05035837 + # TODO: replace it with the (latest - n) commit id (n >= 15) + COMMIT_ID: b52517c strategy: fail-fast: false matrix: From a639a1b79c9f292a32ccfcb423040d621f77b6e9 Mon Sep 17 00:00:00 2001 From: imbajin Date: Tue, 12 Dec 2023 15:11:46 +0800 Subject: [PATCH 20/20] fix style & check version --- .../api/traverser/EdgeExistenceAPI.java | 3 +- .../hugegraph/driver/TraverserManager.java | 53 ++++++++++--------- .../org/apache/hugegraph/api/BaseApiTest.java | 9 ++-- .../api/traverser/EdgeExistenceAPITest.java | 6 +-- 4 files changed, 36 insertions(+), 35 deletions(-) diff --git a/hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPI.java b/hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPI.java index 7f0df07b4..a62a7972c 100644 --- a/hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPI.java +++ b/hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPI.java @@ -41,6 +41,7 @@ protected String type() { public List get(Object sourceId, Object targetId, String edgeLabel, String sortValues, int limit) { + this.client.checkApiVersion("0.70", "count"); String source = GraphAPI.formatVertexId(sourceId, false); String target = GraphAPI.formatVertexId(targetId, false); @@ -48,7 +49,7 @@ public List get(Object sourceId, Object targetId, String edgeLabel, params.put("source", source); params.put("target", target); params.put("label", edgeLabel); - if (!Strings.isEmpty(sortValues)){ + if (!Strings.isEmpty(sortValues)) { params.put("sort_values", sortValues); } params.put("limit", limit); diff --git a/hugegraph-client/src/main/java/org/apache/hugegraph/driver/TraverserManager.java b/hugegraph-client/src/main/java/org/apache/hugegraph/driver/TraverserManager.java index 571e90f6f..580813426 100644 --- a/hugegraph-client/src/main/java/org/apache/hugegraph/driver/TraverserManager.java +++ b/hugegraph-client/src/main/java/org/apache/hugegraph/driver/TraverserManager.java @@ -77,29 +77,29 @@ public class TraverserManager { private final GraphManager graphManager; - private JaccardSimilarityAPI jaccardSimilarityAPI; - private SameNeighborsAPI sameNeighborsAPI; - private ShortestPathAPI shortestPathAPI; - private AllShortestPathsAPI allShortestPathsAPI; - private SingleSourceShortestPathAPI singleSourceShortestPathAPI; - private WeightedShortestPathAPI weightedShortestPathAPI; - private MultiNodeShortestPathAPI multiNodeShortestPathAPI; - private PathsAPI pathsAPI; - private CrosspointsAPI crosspointsAPI; - private KoutAPI koutAPI; - private KneighborAPI kneighborAPI; - private CountAPI countAPI; - private RingsAPI ringsAPI; - private RaysAPI raysAPI; - private CustomizedPathsAPI customizedPathsAPI; - private CustomizedCrosspointsAPI customizedCrosspointsAPI; - private TemplatePathsAPI templatePathsAPI; - private FusiformSimilarityAPI fusiformSimilarityAPI; - private NeighborRankAPI neighborRankAPI; - private PersonalRankAPI personalRankAPI; - private VerticesAPI verticesAPI; - private EdgesAPI edgesAPI; - private EdgeExistenceAPI edgeExistenceAPI; + private final JaccardSimilarityAPI jaccardSimilarityAPI; + private final SameNeighborsAPI sameNeighborsAPI; + private final ShortestPathAPI shortestPathAPI; + private final AllShortestPathsAPI allShortestPathsAPI; + private final SingleSourceShortestPathAPI singleSourceShortestPathAPI; + private final WeightedShortestPathAPI weightedShortestPathAPI; + private final MultiNodeShortestPathAPI multiNodeShortestPathAPI; + private final PathsAPI pathsAPI; + private final CrosspointsAPI crosspointsAPI; + private final KoutAPI koutAPI; + private final KneighborAPI kneighborAPI; + private final CountAPI countAPI; + private final RingsAPI ringsAPI; + private final RaysAPI raysAPI; + private final CustomizedPathsAPI customizedPathsAPI; + private final CustomizedCrosspointsAPI customizedCrosspointsAPI; + private final TemplatePathsAPI templatePathsAPI; + private final FusiformSimilarityAPI fusiformSimilarityAPI; + private final NeighborRankAPI neighborRankAPI; + private final PersonalRankAPI personalRankAPI; + private final VerticesAPI verticesAPI; + private final EdgesAPI edgesAPI; + private final EdgeExistenceAPI edgeExistenceAPI; public TraverserManager(RestClient client, GraphManager graphManager) { this.graphManager = graphManager; @@ -545,14 +545,15 @@ public Iterator iteratorEdges(Shard shard, int sizePerPage) { } public List edgeExistence(Object sourceId, Object targetId, String edgeLabel, - String sortValues, int limit){ + String sortValues, int limit) { return this.edgeExistenceAPI.get(sourceId, targetId, edgeLabel, sortValues, limit); } - public List edgeExistence(Object sourceId, Object targetId){ + + public List edgeExistence(Object sourceId, Object targetId) { return this.edgeExistenceAPI.get(sourceId, targetId, "", "", -1); } - public List edgeExistence(Object sourceId, Object targetId, String edgeLabel){ + public List edgeExistence(Object sourceId, Object targetId, String edgeLabel) { return this.edgeExistenceAPI.get(sourceId, targetId, edgeLabel, null, -1); } } diff --git a/hugegraph-client/src/test/java/org/apache/hugegraph/api/BaseApiTest.java b/hugegraph-client/src/test/java/org/apache/hugegraph/api/BaseApiTest.java index aca50e25a..c6570149b 100644 --- a/hugegraph-client/src/test/java/org/apache/hugegraph/api/BaseApiTest.java +++ b/hugegraph-client/src/test/java/org/apache/hugegraph/api/BaseApiTest.java @@ -31,7 +31,6 @@ import org.apache.hugegraph.api.schema.SchemaAPI; import org.apache.hugegraph.api.schema.VertexLabelAPI; import org.apache.hugegraph.api.task.TaskAPI; -import org.apache.hugegraph.api.traverser.EdgeExistenceAPI; import org.apache.hugegraph.api.variables.VariablesAPI; import org.apache.hugegraph.api.version.VersionAPI; import org.apache.hugegraph.client.RestClient; @@ -121,25 +120,25 @@ protected static void clearData() { indexLabelAPI.list().forEach(indexLabel -> { ilTaskIds.add(indexLabelAPI.delete(indexLabel.name())); }); - ilTaskIds.forEach(taskId -> waitUntilTaskCompleted(taskId)); + ilTaskIds.forEach(BaseApiTest::waitUntilTaskCompleted); List elTaskIds = new ArrayList<>(); edgeLabelAPI.list().forEach(edgeLabel -> { elTaskIds.add(edgeLabelAPI.delete(edgeLabel.name())); }); - elTaskIds.forEach(taskId -> waitUntilTaskCompleted(taskId)); + elTaskIds.forEach(BaseApiTest::waitUntilTaskCompleted); List vlTaskIds = new ArrayList<>(); vertexLabelAPI.list().forEach(vertexLabel -> { vlTaskIds.add(vertexLabelAPI.delete(vertexLabel.name())); }); - vlTaskIds.forEach(taskId -> waitUntilTaskCompleted(taskId)); + vlTaskIds.forEach(BaseApiTest::waitUntilTaskCompleted); List pkTaskIds = new ArrayList<>(); propertyKeyAPI.list().forEach(propertyKey -> { pkTaskIds.add(propertyKeyAPI.delete(propertyKey.name())); }); - pkTaskIds.forEach(taskId -> waitUntilTaskCompleted(taskId)); + pkTaskIds.forEach(BaseApiTest::waitUntilTaskCompleted); // Clear system taskAPI.list(null, -1).forEach(task -> { diff --git a/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPITest.java b/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPITest.java index cea91c61d..ff46066c0 100644 --- a/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPITest.java +++ b/hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/EdgeExistenceAPITest.java @@ -26,7 +26,7 @@ import java.util.List; -public class EdgeExistenceAPITest extends TraverserApiTest{ +public class EdgeExistenceAPITest extends TraverserApiTest { @BeforeClass public static void prepareSchemaAndGraph() { @@ -43,11 +43,11 @@ public void testEdgeExistenceGet() { Object markoId = getVertexId("person", "name", "marko"); Object vadasId = getVertexId("person", "name", "vadas"); - List edges = edgeExistenceAPI.get(markoId, vadasId,"", "", 100); + List edges = edgeExistenceAPI.get(markoId, vadasId, "", "", 100); Assert.assertEquals(1, edges.size()); String sortValues = edges.get(0).name(); - edges = edgeExistenceAPI.get(markoId, vadasId,"knows", sortValues, 100); + edges = edgeExistenceAPI.get(markoId, vadasId, "knows", sortValues, 100); String id = edges.get(0).id(); Assert.assertEquals(1, edges.size());