From 5008db6f3dfb7cc4add0676c255c74c542047cca Mon Sep 17 00:00:00 2001 From: Michele Rastelli Date: Thu, 31 Jul 2025 22:35:06 +0200 Subject: [PATCH 1/3] created demo --- demo/pom.xml | 5 + demo/src/main/java/org/example/Main.java | 233 +- .../main/resources/air-routes-small.graphml | 6098 +++++++++++++++++ demo/src/main/resources/logback-test.xml | 17 + 4 files changed, 6341 insertions(+), 12 deletions(-) create mode 100644 demo/src/main/resources/air-routes-small.graphml create mode 100644 demo/src/main/resources/logback-test.xml diff --git a/demo/pom.xml b/demo/pom.xml index f36ae8b..66a99c1 100644 --- a/demo/pom.xml +++ b/demo/pom.xml @@ -20,6 +20,11 @@ arangodb-tinkerpop-provider 0.0.2-SNAPSHOT + + ch.qos.logback + logback-classic + 1.5.18 + diff --git a/demo/src/main/java/org/example/Main.java b/demo/src/main/java/org/example/Main.java index 8c7948e..00054de 100644 --- a/demo/src/main/java/org/example/Main.java +++ b/demo/src/main/java/org/example/Main.java @@ -16,17 +16,50 @@ package org.example; +import com.arangodb.ArangoDB; +import com.arangodb.ArangoDatabase; import com.arangodb.tinkerpop.gremlin.structure.ArangoDBGraph; import com.arangodb.tinkerpop.gremlin.utils.ArangoDBConfigurationBuilder; import org.apache.commons.configuration2.Configuration; -import org.apache.tinkerpop.gremlin.structure.Vertex; +import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource; +import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__; +import java.util.List; +import java.util.Map; + +import static org.apache.tinkerpop.gremlin.process.traversal.Order.desc; +import static org.apache.tinkerpop.gremlin.process.traversal.Scope.local; +import static org.apache.tinkerpop.gremlin.structure.Column.values; + +/** + * Demo program showing how to use Gremlin with ArangoDB TinkerPop provider. + * Based on: Practical Gremlin: An Apache TinkerPop Tutorial by Kelvin R. Lawrence + * (link) + */ public class Main { private static final String DB_NAME = "demo"; + private static final String GRAPHML_FILE = "src/main/resources/air-routes-small.graphml"; + @SuppressWarnings("resource") public static void main(String[] args) { + System.out.println("Starting ArangoDB TinkerPop Demo with Air Routes Data"); - // create Tinkerpop Graph backed by ArangoDB + //region cleanup + System.out.println("Cleaning up existing database:"); + { + ArangoDatabase db = new ArangoDB.Builder() + .host("127.0.0.1", 8529) + .password("test") + .build() + .db(DB_NAME); + if (db.exists()) { + db.drop(); + } + db.arango().shutdown(); + } + //endregion + + // create Tinkerpop graph backed by ArangoDB Configuration conf = new ArangoDBConfigurationBuilder() .hosts("127.0.0.1:8529") .user("root") @@ -34,20 +67,196 @@ public static void main(String[] args) { .database(DB_NAME) .enableDataDefinition(true) .build(); - ArangoDBGraph g = ArangoDBGraph.open(conf); + ArangoDBGraph graph = ArangoDBGraph.open(conf); + GraphTraversalSource g = graph.traversal(); // print supported features - System.out.println(g.features()); + System.out.println("Graph Features:"); + System.out.println(graph.features()); + + // Import GraphML data + System.out.println("\nImporting Air Routes data from GraphML file..."); + { + g.io(Main.GRAPHML_FILE).read().iterate(); + System.out.println("Data import completed."); + } + + //region Basic Gremlin Queries + System.out.println("\n=== Basic Gremlin Queries ==="); + { + System.out.println("Counting vertices and edges:"); + long vertexCount = g.V().count().next(); + long edgeCount = g.E().count().next(); + System.out.println(" Vertices: " + vertexCount); + System.out.println(" Edges: " + edgeCount); + + System.out.println("\nVertex labels in the graph:"); + g.V().label().dedup().forEachRemaining(label -> System.out.println(" " + label)); + + System.out.println("\nEdge labels in the graph:"); + g.E().label().dedup().forEachRemaining(label -> System.out.println(" " + label)); + + System.out.println("\nSample of 5 airports:"); + g.V().hasLabel("airport").limit(5).valueMap().forEachRemaining( + vm -> System.out.println(" " + vm) + ); + + System.out.println("\nSample of 5 routes:"); + g.E().hasLabel("route").limit(5).valueMap().forEachRemaining( + vm -> System.out.println(" " + vm) + ); + } + //endregion + + //region Explore airports and routes + System.out.println("\n=== Exploring Airports and Routes ==="); + { + // Count airports by region + System.out.println("\nTop 5 regions by number of airports:"); + g.V().hasLabel("airport") + .groupCount().by("region") + .order(local).by(values, desc) + .>unfold().limit(5) + .forEachRemaining(e -> + System.out.println(" " + e.getKey() + ": " + e.getValue() + " airports")); - // write vertex - Vertex v = g.addVertex("person"); - v.property("name", "Joe"); - v.property("age", 22); - // read vertex - Vertex joe = g.traversal().V().has("name", "Joe").next(); - System.out.println("Joe's age: " + joe.property("age").value()); + // Find airports with most routes + System.out.println("\nTop 5 airports with most outgoing routes:"); + g.V().hasLabel("airport") + .project("airport", "code", "routes") + .by("city") + .by("code") + .by(__.outE("route").count()) + .order().by("routes", desc) + .limit(5) + .forEachRemaining(m -> + System.out.println(" " + m.get("airport") + " (" + m.get("code") + "): " + m.get("routes") + " routes")); + } + //endregion - g.close(); + //region Graph Algorithms + System.out.println("\n=== Graph Algorithms ==="); + { + // Degree centrality - find most connected airports + System.out.println("\nTop 5 airports by degree centrality (most connections):"); + g.V().hasLabel("airport") + .project("airport", "code", "degree") + .by("city") + .by("code") + .by(__.bothE().count()) + .order().by("degree", desc) + .limit(5) + .forEachRemaining(m -> + System.out.println(" " + m.get("airport") + " (" + m.get("code") + "): " + m.get("degree") + " connections")); + + // Find a path between two airports + System.out.println("\nFinding shortest path between Boston (BOS) and Atlanta (ATL):"); + + g.V().hasLabel("airport") + .has("code", "BOS") + .repeat(__.out().simplePath()) + .until(__.has("code", "ATL")) + .limit(5) + .path().by("code") + .forEachRemaining(path -> + System.out.println(" Path (" + (path.size() - 1) + " hops): " + + String.join(" -> ", path.objects().stream().map(Object::toString).toList()))); + + // Find all airports reachable within 2 hops from London + System.out.println("\nCount of the airports reachable within 2 hops from Boston (BOS):"); + Long count = g.V().has("code", "BOS") + .repeat(__.out().simplePath()) + .times(2) + .dedup() + .count() + .next(); + System.out.println(" " + count + " airports"); + } + //endregion + + //region AQL Queries + System.out.println("\n=== AQL Queries ==="); + { + // Find weighted k-shortest paths between two airports with an AQL query + System.out.println("\nFinding weighted k-shortest paths between Boston (BOS) and San Francisco (SFO) with AQL query:"); + + String shortestPathQuery = """ + LET start = FIRST( + FOR d IN tinkerpop_vertex + FILTER d.code == @start + RETURN d + ) + + LET target = FIRST( + FOR d IN tinkerpop_vertex + FILTER d.code == @target + RETURN d + ) + + FOR path IN OUTBOUND K_SHORTEST_PATHS start TO target GRAPH tinkerpop + OPTIONS { weightAttribute: 'dist' } + LIMIT 5 + RETURN { + path: path.vertices[*].code, + dist: path.weight + } + """; + + graph.>aql(shortestPathQuery, Map.of( + "start", "BOS", + "target", "SFO" + )).forEachRemaining(path -> + System.out.println(" Path (dist: " + path.get("dist") + "): \t" + path.get("path"))); + + // AQL traversal to find paths between two airports with constraints on edges + System.out.println("\nFinding path between Boston (BOS) and Atlanta (ATL) with max 400 km flights with AQL query:"); + + String traversalQuery = """ + LET start = FIRST( + FOR d IN tinkerpop_vertex + FILTER d.code == @start + RETURN d + ) + + FOR v,e,p IN 1..10 OUTBOUND start GRAPH tinkerpop + PRUNE cond = e.dist > 400 + OPTIONS { uniqueVertices: 'path', order: 'bfs' } + FILTER NOT cond + FILTER v.code == @target + LIMIT 5 + RETURN p + """; + + graph.>aql(traversalQuery, Map.of( + "start", "BOS", + "target", "ATL" + )) + .project("path", "distances", "tot") + .by(__.select("vertices").unfold().values("code").fold()) + .by(__.select("edges").unfold().values("dist").fold()) + .by(__.select("edges").unfold().values("dist").sum()) + .forEachRemaining(it -> { + @SuppressWarnings("unchecked") + List path = (List) it.get("path"); + @SuppressWarnings("unchecked") + List distances = (List) it.get("distances"); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < distances.size(); i++) { + sb + .append(path.get(i)) + .append(" -(") + .append(distances.get(i)) + .append(")-> "); + } + sb.append(path.getLast()); + System.out.println(" Path (dist: " + it.get("tot") + "): \t" + sb); + } + ); + } + //endregion + + graph.close(); } + } \ No newline at end of file diff --git a/demo/src/main/resources/air-routes-small.graphml b/demo/src/main/resources/air-routes-small.graphml new file mode 100644 index 0000000..50473f2 --- /dev/null +++ b/demo/src/main/resources/air-routes-small.graphml @@ -0,0 +1,6098 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + airport + airport + ATL + KATL + Atlanta + Hartsfield - Jackson Atlanta International Airport + US-GA + 5 + 12390 + 1026 + US + 33.6366996765137 + -84.4281005859375 + + + airport + airport + ANC + PANC + Anchorage + Anchorage Ted Stevens + US-AK + 3 + 12400 + 151 + US + 61.1744003295898 + -149.996002197266 + + + airport + airport + AUS + KAUS + Austin + Austin Bergstrom International Airport + US-TX + 2 + 12250 + 542 + US + 30.1944999694824 + -97.6698989868164 + + + airport + airport + BNA + KBNA + Nashville + Nashville International Airport + US-TN + 4 + 11030 + 599 + US + 36.1245002746582 + -86.6781997680664 + + + airport + airport + BOS + KBOS + Boston + Boston Logan + US-MA + 6 + 10083 + 19 + US + 42.36429977 + -71.00520325 + + + airport + airport + BWI + KBWI + Baltimore + Baltimore/Washington International Airport + US-MD + 3 + 10502 + 143 + US + 39.17539978 + -76.66829681 + + + airport + airport + DCA + KDCA + Washington D.C. + Ronald Reagan Washington National Airport + US-DC + 3 + 7169 + 14 + US + 38.8521003723145 + -77.0376968383789 + + + airport + airport + DFW + KDFW + Dallas + Dallas/Fort Worth International Airport + US-TX + 7 + 13401 + 607 + US + 32.896800994873 + -97.0380020141602 + + + airport + airport + FLL + KFLL + Fort Lauderdale + Fort Lauderdale/Hollywood International Airport + US-FL + 2 + 9000 + 64 + US + 26.0725994110107 + -80.152702331543 + + + airport + airport + IAD + KIAD + Washington D.C. + Washington Dulles International Airport + US-VA + 4 + 11500 + 313 + US + 38.94449997 + -77.45580292 + + + airport + airport + IAH + KIAH + Houston + George Bush Intercontinental + US-TX + 5 + 12001 + 96 + US + 29.9843997955322 + -95.3414001464844 + + + airport + airport + JFK + KJFK + New York + New York John F. Kennedy International Airport + US-NY + 4 + 14511 + 12 + US + 40.63980103 + -73.77890015 + + + airport + airport + LAX + KLAX + Los Angeles + Los Angeles International Airport + US-CA + 4 + 12091 + 127 + US + 33.94250107 + -118.4079971 + + + airport + airport + LGA + KLGA + New York + New York La Guardia + US-NY + 2 + 7003 + 20 + US + 40.77719879 + -73.87259674 + + + airport + airport + MCO + KMCO + Orlando + Orlando International Airport + US-FL + 4 + 12005 + 96 + US + 28.4293994903564 + -81.3089981079102 + + + airport + airport + MIA + KMIA + Miami + Miami International Airport + US-FL + 4 + 13016 + 8 + US + 25.7931995391846 + -80.2906036376953 + + + airport + airport + MSP + KMSP + Minneapolis + Minneapolis-St.Paul International Airport + US-MN + 4 + 11006 + 841 + US + 44.8819999695 + -93.2218017578 + + + airport + airport + ORD + KORD + Chicago + Chicago O'Hare International Airport + US-IL + 8 + 13000 + 672 + US + 41.97859955 + -87.90480042 + + + airport + airport + PBI + KPBI + West Palm Beach + Palm Beach International Airport + US-FL + 3 + 10000 + 19 + US + 26.6832008361816 + -80.0955963134766 + + + airport + airport + PHX + KPHX + Phoenix + Phoenix Sky Harbor International Airport + US-AZ + 3 + 11489 + 1135 + US + 33.4342994689941 + -112.012001037598 + + + airport + airport + RDU + KRDU + Raleigh + Raleigh-Durham + US-NC + 3 + 10000 + 435 + US + 35.8776016235352 + -78.7874984741211 + + + airport + airport + SEA + KSEA + Seattle + Seattle-Tacoma + US-WA + 3 + 11901 + 432 + US + 47.4490013122559 + -122.30899810791 + + + airport + airport + SFO + KSFO + San Francisco + San Francisco International Airport + US-CA + 4 + 11870 + 13 + US + 37.6189994812012 + -122.375 + + + airport + airport + SJC + KSJC + San Jose + Norman Y. Mineta San Jose International Airport + US-CA + 3 + 11000 + 62 + US + 37.3625984191895 + -121.929000854492 + + + airport + airport + TPA + KTPA + Tampa + Tampa International Airport + US-FL + 3 + 11002 + 26 + US + 27.9755001068115 + -82.533203125 + + + airport + airport + SAN + KSAN + San Diego + San Diego Lindbergh + US-CA + 1 + 9400 + 16 + US + 32.7336006165 + -117.190002441 + + + airport + airport + LGB + KLGB + Long Beach + Long Beach Airport + US-CA + 3 + 10003 + 60 + US + 33.81769943 + -118.1520004 + + + airport + airport + SNA + KSNA + Santa Ana + Orange County/Santa Ana, John Wayne + US-CA + 2 + 5701 + 56 + US + 33.67570114 + -117.8679962 + + + airport + airport + SLC + KSLC + Salt Lake City + Salt Lake City + US-UT + 4 + 12002 + 56 + US + 40.7883987426758 + -111.977996826172 + + + airport + airport + LAS + KLAS + Las Vegas + Las Vegas Mc Carran + US-NV + 4 + 14512 + 2181 + US + 36.08010101 + -115.1520004 + + + airport + airport + DEN + KDEN + Denver + Denver International Airport + US-CO + 6 + 16000 + 5433 + US + 39.8616981506348 + -104.672996520996 + + + airport + airport + HPN + KHPN + White Plains + Westchester County + US-NY + 2 + 6549 + 439 + US + 41.0670013427734 + -73.7076034545898 + + + airport + airport + SAT + KSAT + San Antonio + San Antonio + US-TX + 3 + 8505 + 809 + US + 29.5337009429932 + -98.4698028564453 + + + airport + airport + MSY + KMSY + New Orleans + New Orleans L. Armstrong + US-LA + 2 + 10104 + 3 + US + 29.9934005737305 + -90.2580032348633 + + + airport + airport + EWR + KEWR + Newark + Newark, Liberty + US-NY + 3 + 11000 + 17 + US + 40.6925010681152 + -74.168701171875 + + + airport + airport + CID + KCID + Cedar Rapids + The Eastern Iowa Airport + US-IA + 2 + 8600 + 869 + US + 41.8847007751465 + -91.7108001708984 + + + airport + airport + HNL + PHNL + Honolulu + Honolulu International Airport + US-HI + 4 + 12312 + 13 + US + 21.3187007904053 + -157.921997070312 + + + airport + airport + HOU + KHOU + Houston + Houston Hobby + US-TX + 4 + 7602 + 46 + US + 29.64539909 + -95.27890015 + + + airport + airport + ELP + KELP + El Paso + El Paso International Airport + US-TX + 3 + 12020 + 3961 + US + 31.80719948 + -106.3779984 + + + airport + airport + SJU + TJSJ + San Juan + Puerto Rico, Luis Munoz International Airport + PR-U-A + 2 + 10400 + 9 + PR + 18.4393997192 + -66.0018005371 + + + airport + airport + CLE + KCLE + Cleveland + Cleveland, Hopkins International Airport + US-OH + 3 + 9956 + 799 + US + 41.4117012024 + -81.8498001099 + + + airport + airport + OAK + KOAK + Oakland + Oakland + US-CA + 4 + 10520 + 9 + US + 37.7212982177734 + -122.221000671387 + + + airport + airport + TUS + KTUS + Tucson + Tucson International Airport + US-AZ + 3 + 10996 + 2643 + US + 32.1161003112793 + -110.94100189209 + + + airport + airport + SAF + KSAF + Santa Fe + Santa Fe + US-NM + 3 + 8366 + 6348 + US + 35.617099762 + -106.088996887 + + + airport + airport + PHL + KPHL + Philadelphia + Philadelphia International Airport + US-PA + 4 + 10506 + 36 + US + 39.871898651123 + -75.241096496582 + + + airport + airport + DTW + KDTW + Detroit + Detroit Metropolitan, Wayne County + US-MI + 6 + 12003 + 645 + US + 42.2123985290527 + -83.353401184082 + + + + route + 811 + + + route + 214 + + + route + 945 + + + route + 576 + + + route + 546 + + + route + 729 + + + route + 581 + + + route + 533 + + + route + 688 + + + route + 759 + + + route + 1941 + + + route + 761 + + + route + 404 + + + route + 596 + + + route + 906 + + + route + 606 + + + route + 546 + + + route + 1580 + + + route + 356 + + + route + 2180 + + + route + 2130 + + + route + 2110 + + + route + 406 + + + route + 1890 + + + route + 2460 + + + route + 1910 + + + route + 1590 + + + route + 1740 + + + route + 1200 + + + route + 780 + + + route + 872 + + + route + 424 + + + route + 745 + + + route + 694 + + + route + 4502 + + + route + 693 + + + route + 1279 + + + route + 1550 + + + route + 556 + + + route + 2124 + + + route + 1540 + + + route + 667 + + + route + 596 + + + route + 3030 + + + route + 3260 + + + route + 2340 + + + route + 2519 + + + route + 2840 + + + route + 2547 + + + route + 1440 + + + route + 2010 + + + route + 2360 + + + route + 2304 + + + route + 2400 + + + route + 2778 + + + route + 809 + + + route + 755 + + + route + 1690 + + + route + 1339 + + + route + 1313 + + + route + 190 + + + route + 1110 + + + route + 1294 + + + route + 142 + + + route + 1520 + + + route + 1230 + + + route + 994 + + + route + 1101 + + + route + 1040 + + + route + 973 + + + route + 866 + + + route + 1159 + + + route + 1768 + + + route + 1500 + + + route + 1476 + + + route + 925 + + + route + 1160 + + + route + 1220 + + + route + 1206 + + + route + 1080 + + + route + 1080 + + + route + 768 + + + route + 444 + + + route + 1500 + + + route + 152 + + + route + 527 + + + route + 1173 + + + route + 1493 + + + route + 1430 + + + route + 1140 + + + route + 214 + + + route + 755 + + + route + 939 + + + route + 586 + + + route + 560 + + + route + 630 + + + route + 793 + + + route + 540 + + + route + 657 + + + route + 763 + + + route + 1790 + + + route + 762 + + + route + 616 + + + route + 806 + + + route + 694 + + + route + 409 + + + route + 1444 + + + route + 441 + + + route + 1972 + + + route + 1963 + + + route + 612 + + + route + 1746 + + + route + 1400 + + + route + 1582 + + + route + 1010 + + + route + 820 + + + route + 471 + + + route + 745 + + + route + 669 + + + route + 448 + + + route + 1953 + + + route + 674 + + + route + 456 + + + route + 945 + + + route + 1690 + + + route + 939 + + + route + 368 + + + route + 398 + + + route + 1560 + + + route + 1240 + + + route + 411 + + + route + 1590 + + + route + 186 + + + route + 2600 + + + route + 184 + + + route + 1120 + + + route + 1260 + + + route + 1120 + + + route + 863 + + + route + 1200 + + + route + 2290 + + + route + 612 + + + route + 2490 + + + route + 2700 + + + route + 2680 + + + route + 1180 + + + route + 2580 + + + route + 2590 + + + route + 2100 + + + route + 2370 + + + route + 1750 + + + route + 166 + + + route + 1370 + + + route + 200 + + + route + 1610 + + + route + 1677 + + + route + 560 + + + route + 2680 + + + route + 278 + + + route + 629 + + + route + 577 + + + route + 586 + + + route + 368 + + + route + 1210 + + + route + 925 + + + route + 1230 + + + route + 184 + + + route + 2320 + + + route + 788 + + + route + 947 + + + route + 936 + + + route + 620 + + + route + 885 + + + route + 1999 + + + route + 255 + + + route + 2335 + + + route + 2450 + + + route + 2431 + + + route + 842 + + + route + 2295 + + + route + 1865 + + + route + 1339 + + + route + 2106 + + + route + 1490 + + + route + 1410 + + + route + 998 + + + route + 169 + + + route + 1240 + + + route + 1567 + + + route + 313 + + + route + 2440 + + + route + 91 + + + route + 408 + + + route + 547 + + + route + 1313 + + + route + 560 + + + route + 398 + + + route + 1190 + + + route + 899 + + + route + 1210 + + + route + 213 + + + route + 2300 + + + route + 214 + + + route + 760 + + + route + 921 + + + route + 931 + + + route + 610 + + + route + 859 + + + route + 226 + + + route + 2320 + + + route + 2434 + + + route + 815 + + + route + 2276 + + + route + 2089 + + + route + 1470 + + + route + 233 + + + route + 969 + + + route + 199 + + + route + 1220 + + + route + 1557 + + + route + 120 + + + route + 309 + + + route + 405 + + + route + 729 + + + route + 3030 + + + route + 190 + + + route + 630 + + + route + 1560 + + + route + 1210 + + + route + 1190 + + + route + 1120 + + + route + 1170 + + + route + 225 + + + route + 1390 + + + route + 1230 + + + route + 1390 + + + route + 983 + + + route + 1120 + + + route + 852 + + + route + 801 + + + route + 1100 + + + route + 865 + + + route + 1060 + + + route + 1660 + + + route + 1460 + + + route + 1430 + + + route + 927 + + + route + 1170 + + + route + 1200 + + + route + 986 + + + route + 1050 + + + route + 640 + + + route + 248 + + + route + 448 + + + route + 1370 + + + route + 686 + + + route + 3770 + + + route + 248 + + + route + 549 + + + route + 2162 + + + route + 1019 + + + route + 1452 + + + route + 810 + + + route + 549 + + + route + 1300 + + + route + 986 + + + route + 582 + + + route + 1110 + + + route + 793 + + + route + 1240 + + + route + 925 + + + route + 899 + + + route + 1120 + + + route + 901 + + + route + 964 + + + route + 1070 + + + route + 2337 + + + route + 1080 + + + route + 177 + + + route + 1487 + + + route + 1180 + + + route + 1972 + + + route + 681 + + + route + 2712 + + + route + 2577 + + + route + 197 + + + route + 2263 + + + route + 2322 + + + route + 2173 + + + route + 1700 + + + route + 1100 + + + route + 674 + + + route + 1065 + + + route + 955 + + + route + 1045 + + + route + 1063 + + + route + 995 + + + route + 1130 + + + route + 535 + + + route + 1294 + + + route + 540 + + + route + 411 + + + route + 1170 + + + route + 901 + + + route + 1190 + + + route + 227 + + + route + 2280 + + + route + 228 + + + route + 758 + + + route + 922 + + + route + 908 + + + route + 587 + + + route + 224 + + + route + 2300 + + + route + 2410 + + + route + 811 + + + route + 2253 + + + route + 1822 + + + route + 2059 + + + route + 1450 + + + route + 1360 + + + route + 955 + + + route + 212 + + + route + 1573 + + + route + 287 + + + route + 2401 + + + route + 135 + + + route + 383 + + + route + 687 + + + route + 3260 + + + route + 142 + + + route + 657 + + + route + 1590 + + + route + 1230 + + + route + 1210 + + + route + 225 + + + route + 964 + + + route + 1190 + + + route + 1410 + + + route + 1370 + + + route + 1420 + + + route + 852 + + + route + 963 + + + route + 1040 + + + route + 926 + + + route + 954 + + + route + 1010 + + + route + 1040 + + + route + 1870 + + + route + 1630 + + + route + 1600 + + + route + 786 + + + route + 1300 + + + route + 1340 + + + route + 1190 + + + route + 1220 + + + route + 861 + + + route + 190 + + + route + 304 + + + route + 1400 + + + route + 3890 + + + route + 665 + + + route + 2004 + + + route + 1090 + + + route + 933 + + + route + 1320 + + + route + 1080 + + + route + 760 + + + route + 1520 + + + route + 763 + + + route + 186 + + + route + 184 + + + route + 213 + + + route + 1390 + + + route + 1070 + + + route + 227 + + + route + 1410 + + + route + 2470 + + + route + 945 + + + route + 1090 + + + route + 1020 + + + route + 737 + + + route + 1030 + + + route + 2150 + + + route + 427 + + + route + 2410 + + + route + 2580 + + + route + 2560 + + + route + 1010 + + + route + 2440 + + + route + 2460 + + + route + 1980 + + + route + 2240 + + + route + 1620 + + + route + 1580 + + + route + 1180 + + + route + 4970 + + + route + 1430 + + + route + 1600 + + + route + 423 + + + route + 2567 + + + route + 2131 + + + route + 93 + + + route + 507 + + + route + 1940 + + + route + 2340 + + + route + 1230 + + + route + 1790 + + + route + 2600 + + + route + 2320 + + + route + 2300 + + + route + 1230 + + + route + 2337 + + + route + 2280 + + + route + 1370 + + + route + 2470 + + + route + 2210 + + + route + 2340 + + + route + 1530 + + + route + 1740 + + + route + 2324 + + + route + 369 + + + route + 2230 + + + route + 954 + + + route + 338 + + + route + 294 + + + route + 2150 + + + route + 109 + + + route + 589 + + + route + 236 + + + route + 860 + + + route + 1210 + + + route + 1670 + + + route + 2450 + + + route + 1550 + + + route + 2550 + + + route + 1390 + + + route + 712 + + + route + 2047 + + + route + 337 + + + route + 450 + + + route + 708 + + + route + 2390 + + + route + 1970 + + + route + 761 + + + route + 762 + + + route + 184 + + + route + 214 + + + route + 1390 + + + route + 1080 + + + route + 228 + + + route + 1420 + + + route + 950 + + + route + 1100 + + + route + 1020 + + + route + 731 + + + route + 1040 + + + route + 431 + + + route + 1010 + + + route + 1610 + + + route + 1180 + + + route + 1430 + + + route + 417 + + + route + 94 + + + route + 500 + + + route + 404 + + + route + 994 + + + route + 616 + + + route + 1120 + + + route + 788 + + + route + 760 + + + route + 983 + + + route + 177 + + + route + 758 + + + route + 852 + + + route + 945 + + + route + 2210 + + + route + 950 + + + route + 193 + + + route + 1310 + + + route + 1010 + + + route + 1844 + + + route + 534 + + + route + 2549 + + + route + 2440 + + + route + 2143 + + + route + 1930 + + + route + 2030 + + + route + 1540 + + + route + 972 + + + route + 1038 + + + route + 550 + + + route + 938 + + + route + 847 + + + route + 1188 + + + route + 896 + + + route + 863 + + + route + 958 + + + route + 596 + + + route + 1101 + + + route + 806 + + + route + 1260 + + + route + 947 + + + route + 921 + + + route + 1120 + + + route + 922 + + + route + 963 + + + route + 1090 + + + route + 2340 + + + route + 1100 + + + route + 193 + + + route + 1501 + + + route + 1200 + + + route + 1967 + + + route + 702 + + + route + 2720 + + + route + 2580 + + + route + 204 + + + route + 2262 + + + route + 2085 + + + route + 2169 + + + route + 1710 + + + route + 1120 + + + route + 1140 + + + route + 674 + + + route + 1087 + + + route + 1044 + + + route + 1082 + + + route + 1020 + + + route + 1150 + + + route + 906 + + + route + 2519 + + + route + 1040 + + + route + 694 + + + route + 1120 + + + route + 936 + + + route + 931 + + + route + 852 + + + route + 1487 + + + route + 908 + + + route + 1040 + + + route + 1020 + + + route + 1530 + + + route + 1020 + + + route + 1310 + + + route + 1501 + + + route + 333 + + + route + 1452 + + + route + 1276 + + + route + 978 + + + route + 1390 + + + route + 1584 + + + route + 1575 + + + route + 1306 + + + route + 1532 + + + route + 1522 + + + route + 991 + + + route + 1299 + + + route + 679 + + + route + 1097 + + + route + 1039 + + + route + 1008 + + + route + 220 + + + route + 3964 + + + route + 620 + + + route + 1578 + + + route + 1296 + + + route + 977 + + + route + 526 + + + route + 606 + + + route + 2840 + + + route + 973 + + + route + 409 + + + route + 863 + + + route + 620 + + + route + 610 + + + route + 801 + + + route + 1180 + + + route + 587 + + + route + 926 + + + route + 737 + + + route + 1740 + + + route + 731 + + + route + 1010 + + + route + 1200 + + + route + 333 + + + route + 1140 + + + route + 1440 + + + route + 645 + + + route + 1710 + + + route + 1840 + + + route + 1820 + + + route + 1010 + + + route + 1720 + + + route + 1720 + + + route + 1250 + + + route + 1510 + + + route + 885 + + + route + 735 + + + route + 1040 + + + route + 838 + + + route + 717 + + + route + 195 + + + route + 4230 + + + route + 1234 + + + route + 2072 + + + route + 314 + + + route + 1830 + + + route + 1434 + + + route + 676 + + + route + 234 + + + route + 546 + + + route + 1200 + + + route + 885 + + + route + 859 + + + route + 1100 + + + route + 954 + + + route + 1030 + + + route + 2324 + + + route + 1040 + + + route + 1452 + + + route + 1140 + + + route + 174 + + + route + 1677 + + + route + 1060 + + + route + 1023 + + + route + 1062 + + + route + 1021 + + + route + 953 + + + route + 1090 + + + route + 1580 + + + route + 2547 + + + route + 866 + + + route + 1444 + + + route + 2290 + + + route + 1999 + + + route + 865 + + + route + 1972 + + + route + 1010 + + + route + 2150 + + + route + 369 + + + route + 1844 + + + route + 1967 + + + route + 1276 + + + route + 1440 + + + route + 1885 + + + route + 1106 + + + route + 649 + + + route + 621 + + + route + 304 + + + route + 338 + + + route + 508 + + + route + 255 + + + route + 601 + + + route + 841 + + + route + 1300 + + + route + 2133 + + + route + 1020 + + + route + 346 + + + route + 1733 + + + route + 644 + + + route + 110 + + + route + 369 + + + route + 2070 + + + route + 1670 + + + route + 356 + + + route + 1159 + + + route + 441 + + + route + 612 + + + route + 255 + + + route + 226 + + + route + 1060 + + + route + 681 + + + route + 224 + + + route + 1040 + + + route + 427 + + + route + 2230 + + + route + 431 + + + route + 534 + + + route + 702 + + + route + 978 + + + route + 645 + + + route + 1885 + + + route + 2347 + + + route + 2392 + + + route + 588 + + + route + 1818 + + + route + 2020 + + + route + 1430 + + + route + 416 + + + route + 778 + + + route + 1050 + + + route + 416 + + + route + 338 + + + route + 501 + + + route + 2180 + + + route + 1440 + + + route + 1768 + + + route + 1972 + + + route + 2490 + + + route + 2320 + + + route + 2335 + + + route + 1660 + + + route + 2712 + + + route + 2300 + + + route + 1870 + + + route + 2410 + + + route + 954 + + + route + 2549 + + + route + 2720 + + + route + 1390 + + + route + 1710 + + + route + 1106 + + + route + 2347 + + + route + 678 + + + route + 696 + + + route + 2515 + + + route + 1050 + + + route + 965 + + + route + 978 + + + route + 687 + + + route + 866 + + + route + 1020 + + + route + 1772 + + + route + 2082 + + + route + 2393 + + + route + 2670 + + + route + 1891 + + + route + 671 + + + route + 1215 + + + route + 2370 + + + route + 1920 + + + route + 2130 + + + route + 2010 + + + route + 1500 + + + route + 1963 + + + route + 2700 + + + route + 2450 + + + route + 2434 + + + route + 1460 + + + route + 2577 + + + route + 2410 + + + route + 1630 + + + route + 2580 + + + route + 338 + + + route + 2440 + + + route + 2580 + + + route + 1584 + + + route + 1840 + + + route + 649 + + + route + 2392 + + + route + 678 + + + route + 2387 + + + route + 446 + + + route + 354 + + + route + 371 + + + route + 597 + + + route + 412 + + + route + 965 + + + route + 1480 + + + route + 1910 + + + route + 2560 + + + route + 2390 + + + route + 2154 + + + route + 750 + + + route + 2510 + + + route + 2070 + + + route + 2110 + + + route + 1476 + + + route + 2680 + + + route + 2431 + + + route + 1430 + + + route + 1600 + + + route + 2560 + + + route + 294 + + + route + 1575 + + + route + 1820 + + + route + 621 + + + route + 696 + + + route + 417 + + + route + 324 + + + route + 342 + + + route + 584 + + + route + 386 + + + route + 946 + + + route + 2541 + + + route + 2410 + + + route + 720 + + + route + 406 + + + route + 925 + + + route + 612 + + + route + 1180 + + + route + 842 + + + route + 815 + + + route + 927 + + + route + 197 + + + route + 811 + + + route + 786 + + + route + 1010 + + + route + 2150 + + + route + 1010 + + + route + 204 + + + route + 1306 + + + route + 1010 + + + route + 174 + + + route + 588 + + + route + 2515 + + + route + 2387 + + + route + 1984 + + + route + 1500 + + + route + 1030 + + + route + 970 + + + route + 488 + + + route + 997 + + + route + 779 + + + route + 1236 + + + route + 928 + + + route + 922 + + + route + 985 + + + route + 1890 + + + route + 1160 + + + route + 1746 + + + route + 2580 + + + route + 2296 + + + route + 2276 + + + route + 1170 + + + route + 2263 + + + route + 2253 + + + route + 1300 + + + route + 2440 + + + route + 109 + + + route + 2143 + + + route + 2262 + + + route + 1532 + + + route + 1720 + + + route + 304 + + + route + 1050 + + + route + 446 + + + route + 417 + + + route + 626 + + + route + 258 + + + route + 852 + + + route + 1129 + + + route + 1599 + + + route + 2425 + + + route + 2614 + + + route + 1310 + + + route + 634 + + + route + 446 + + + route + 2021 + + + route + 367 + + + route + 2360 + + + route + 1950 + + + route + 2460 + + + route + 2360 + + + route + 1220 + + + route + 2590 + + + route + 2322 + + + route + 2460 + + + route + 965 + + + route + 354 + + + route + 324 + + + route + 255 + + + route + 352 + + + route + 1910 + + + route + 1206 + + + route + 1200 + + + route + 1340 + + + route + 1522 + + + route + 1720 + + + route + 338 + + + route + 978 + + + route + 371 + + + route + 342 + + + route + 226 + + + route + 226 + + + route + 844 + + + route + 2433 + + + route + 1350 + + + route + 370 + + + route + 1954 + + + route + 1590 + + + route + 1080 + + + route + 1400 + + + route + 2100 + + + route + 1865 + + + route + 986 + + + route + 1822 + + + route + 1190 + + + route + 1980 + + + route + 589 + + + route + 1930 + + + route + 2085 + + + route + 991 + + + route + 1250 + + + route + 508 + + + route + 1818 + + + route + 687 + + + route + 597 + + + route + 584 + + + route + 626 + + + route + 226 + + + route + 368 + + + route + 390 + + + route + 1086 + + + route + 1428 + + + route + 1969 + + + route + 586 + + + route + 601 + + + route + 1920 + + + route + 1480 + + + route + 1740 + + + route + 2304 + + + route + 1080 + + + route + 1582 + + + route + 2370 + + + route + 2106 + + + route + 2089 + + + route + 1050 + + + route + 2173 + + + route + 2059 + + + route + 1220 + + + route + 2240 + + + route + 236 + + + route + 2030 + + + route + 2169 + + + route + 1299 + + + route + 1510 + + + route + 255 + + + route + 2020 + + + route + 866 + + + route + 412 + + + route + 386 + + + route + 1984 + + + route + 258 + + + route + 255 + + + route + 226 + + + route + 368 + + + route + 627 + + + route + 1069 + + + route + 1500 + + + route + 2227 + + + route + 1319 + + + route + 2762 + + + route + 1230 + + + route + 582 + + + route + 1819 + + + route + 406 + + + route + 364 + + + route + 2170 + + + route + 1740 + + + route + 1200 + + + route + 2400 + + + route + 768 + + + route + 1010 + + + route + 1750 + + + route + 1490 + + + route + 1470 + + + route + 640 + + + route + 1700 + + + route + 1450 + + + route + 861 + + + route + 1620 + + + route + 860 + + + route + 1610 + + + route + 1540 + + + route + 1710 + + + route + 679 + + + route + 885 + + + route + 1677 + + + route + 601 + + + route + 1430 + + + route + 1020 + + + route + 965 + + + route + 946 + + + route + 1500 + + + route + 852 + + + route + 844 + + + route + 390 + + + route + 627 + + + route + 795 + + + route + 1060 + + + route + 1600 + + + route + 691 + + + route + 3364 + + + route + 882 + + + route + 564 + + + route + 1197 + + + route + 954 + + + route + 638 + + + route + 303 + + + route + 1550 + + + route + 1120 + + + route + 780 + + + route + 166 + + + route + 233 + + + route + 1100 + + + route + 972 + + + route + 1120 + + + route + 735 + + + route + 1060 + + + route + 1030 + + + route + 114 + + + route + 503 + + + route + 872 + + + route + 820 + + + route + 1410 + + + route + 248 + + + route + 1360 + + + route + 190 + + + route + 1580 + + + route + 1210 + + + route + 1038 + + + route + 1140 + + + route + 1097 + + + route + 1040 + + + route + 841 + + + route + 1772 + + + route + 1480 + + + route + 970 + + + route + 1129 + + + route + 1086 + + + route + 1069 + + + route + 795 + + + route + 493 + + + route + 1569 + + + route + 192 + + + route + 495 + + + route + 1490 + + + route + 1210 + + + route + 424 + + + route + 444 + + + route + 471 + + + route + 1370 + + + route + 998 + + + route + 969 + + + route + 448 + + + route + 674 + + + route + 955 + + + route + 304 + + + route + 1180 + + + route + 1670 + + + route + 1180 + + + route + 550 + + + route + 674 + + + route + 1039 + + + route + 838 + + + route + 1300 + + + route + 778 + + + route + 2082 + + + route + 1910 + + + route + 488 + + + route + 1599 + + + route + 1428 + + + route + 1500 + + + route + 1060 + + + route + 493 + + + route + 1167 + + + route + 302 + + + route + 917 + + + route + 1898 + + + route + 1090 + + + route + 928 + + + route + 745 + + + route + 1500 + + + route + 745 + + + route + 200 + + + route + 169 + + + route + 199 + + + route + 1370 + + + route + 1065 + + + route + 212 + + + route + 1400 + + + route + 2450 + + + route + 938 + + + route + 1087 + + + route + 1008 + + + route + 717 + + + route + 1023 + + + route + 2133 + + + route + 416 + + + route + 2393 + + + route + 2560 + + + route + 2541 + + + route + 997 + + + route + 2425 + + + route + 2433 + + + route + 1969 + + + route + 2227 + + + route + 1600 + + + route + 1569 + + + route + 1167 + + + route + 4950 + + + route + 1410 + + + route + 1611 + + + route + 402 + + + route + 2547 + + + route + 79 + + + route + 486 + + + route + 694 + + + route + 686 + + + route + 1550 + + + route + 220 + + + route + 195 + + + route + 691 + + + route + 1319 + + + route + 429 + + + route + 4502 + + + route + 2778 + + + route + 3770 + + + route + 3890 + + + route + 4970 + + + route + 2550 + + + route + 3964 + + + route + 4230 + + + route + 2670 + + + route + 2390 + + + route + 2410 + + + route + 2614 + + + route + 2762 + + + route + 3364 + + + route + 4950 + + + route + 2405 + + + route + 693 + + + route + 152 + + + route + 669 + + + route + 1610 + + + route + 1240 + + + route + 1220 + + + route + 248 + + + route + 955 + + + route + 1430 + + + route + 1390 + + + route + 1430 + + + route + 847 + + + route + 1020 + + + route + 1050 + + + route + 1891 + + + route + 779 + + + route + 1310 + + + route + 1350 + + + route + 1230 + + + route + 882 + + + route + 192 + + + route + 302 + + + route + 1410 + + + route + 675 + + + route + 1994 + + + route + 1110 + + + route + 1638 + + + route + 1330 + + + route + 1279 + + + route + 527 + + + route + 549 + + + route + 665 + + + route + 712 + + + route + 1234 + + + route + 346 + + + route + 634 + + + route + 582 + + + route + 564 + + + route + 495 + + + route + 675 + + + route + 985 + + + route + 1550 + + + route + 1677 + + + route + 1567 + + + route + 1557 + + + route + 2162 + + + route + 1045 + + + route + 1573 + + + route + 2004 + + + route + 1600 + + + route + 1188 + + + route + 1044 + + + route + 2072 + + + route + 1062 + + + route + 1236 + + + route + 1611 + + + route + 1994 + + + route + 1580 + + + route + 556 + + + route + 1173 + + + route + 448 + + + route + 560 + + + route + 313 + + + route + 309 + + + route + 1019 + + + route + 1063 + + + route + 287 + + + route + 1090 + + + route + 423 + + + route + 2047 + + + route + 417 + + + route + 896 + + + route + 1082 + + + route + 620 + + + route + 314 + + + route + 1021 + + + route + 1733 + + + route + 416 + + + route + 2154 + + + route + 928 + + + route + 2021 + + + route + 1819 + + + route + 1197 + + + route + 917 + + + route + 402 + + + route + 1110 + + + route + 362 + + + route + 96 + + + route + 2124 + + + route + 1493 + + + route + 1953 + + + route + 2680 + + + route + 2440 + + + route + 1452 + + + route + 2401 + + + route + 2567 + + + route + 337 + + + route + 1578 + + + route + 1830 + + + route + 644 + + + route + 671 + + + route + 446 + + + route + 352 + + + route + 370 + + + route + 586 + + + route + 406 + + + route + 954 + + + route + 2547 + + + route + 1898 + + + route + 2405 + + + route + 1638 + + + route + 985 + + + route + 2062 + + + route + 1540 + + + route + 810 + + + route + 933 + + + route + 2131 + + + route + 450 + + + route + 1296 + + + route + 1434 + + + route + 110 + + + route + 1215 + + + route + 750 + + + route + 720 + + + route + 367 + + + route + 601 + + + route + 364 + + + route + 638 + + + route + 549 + + + route + 708 + + + route + 369 + + + route + 303 + + + route + 667 + + + route + 1430 + + + route + 674 + + + route + 278 + + + route + 91 + + + route + 120 + + + route + 1300 + + + route + 995 + + + route + 135 + + + route + 1320 + + + route + 93 + + + route + 2390 + + + route + 94 + + + route + 863 + + + route + 1020 + + + route + 977 + + + route + 676 + + + route + 953 + + + route + 2070 + + + route + 338 + + + route + 2370 + + + route + 2510 + + + route + 922 + + + route + 2360 + + + route + 1920 + + + route + 2170 + + + route + 1550 + + + route + 114 + + + route + 1490 + + + route + 1090 + + + route + 79 + + + route + 1330 + + + route + 1580 + + + route + 362 + + + route + 727 + + + route + 596 + + + route + 1140 + + + route + 456 + + + route + 629 + + + route + 408 + + + route + 405 + + + route + 986 + + + route + 1130 + + + route + 383 + + + route + 1080 + + + route + 507 + + + route + 1970 + + + route + 500 + + + route + 958 + + + route + 1150 + + + route + 526 + + + route + 234 + + + route + 1090 + + + route + 1670 + + + route + 501 + + + route + 1920 + + + route + 2070 + + + route + 985 + + + route + 1950 + + + route + 1954 + + + route + 1480 + + + route + 1740 + + + route + 1120 + + + route + 503 + + + route + 1210 + + + route + 928 + + + route + 486 + + + route + 429 + + + route + 96 + + + route + 2062 + + + route + 727 + + + + diff --git a/demo/src/main/resources/logback-test.xml b/demo/src/main/resources/logback-test.xml new file mode 100644 index 0000000..8b98906 --- /dev/null +++ b/demo/src/main/resources/logback-test.xml @@ -0,0 +1,17 @@ + + + + + + %d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n + + + + + + + + + + From 150c32366b3b145dc3c43c4c9fc47714212378e3 Mon Sep 17 00:00:00 2001 From: Michele Rastelli Date: Thu, 31 Jul 2025 22:48:35 +0200 Subject: [PATCH 2/3] CI: added demo --- .circleci/config.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index a674be4..2294a82 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -117,6 +117,21 @@ jobs: command: mvn test -Dtest.graph.type=<> <> - store_cache + test-demo: + executor: 'j21' + steps: + - timeout + - checkout + - setup_remote_docker + - start-db + - load_cache + - install + - run: + name: Run demo + command: mvn compile exec:java -Dexec.mainClass="org.example.Main" + working_directory: demo + - store_cache + test-console: executor: 'j21' steps: @@ -252,6 +267,12 @@ workflows: jobs: - test-plugin + test-demo: + when: + not: <> + jobs: + - test-demo + deploy: jobs: - deploy: From 86117240eaecdf140e33ad265055710992d93dc6 Mon Sep 17 00:00:00 2001 From: Michele Rastelli Date: Thu, 31 Jul 2025 22:54:17 +0200 Subject: [PATCH 3/3] CI: fixed db host --- README.md | 2 +- demo/src/main/java/org/example/Main.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 1abd481..ea58331 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ gremlin: - "e1:[a]->[b]" - "e2:[b,c]->[e,f]" driver: - hosts: [ "127.0.0.1:8529" ] + hosts: [ "172.28.0.1:8529" ] password: test ``` diff --git a/demo/src/main/java/org/example/Main.java b/demo/src/main/java/org/example/Main.java index 00054de..3c22268 100644 --- a/demo/src/main/java/org/example/Main.java +++ b/demo/src/main/java/org/example/Main.java @@ -48,7 +48,7 @@ public static void main(String[] args) { System.out.println("Cleaning up existing database:"); { ArangoDatabase db = new ArangoDB.Builder() - .host("127.0.0.1", 8529) + .host("172.28.0.1", 8529) .password("test") .build() .db(DB_NAME); @@ -61,7 +61,7 @@ public static void main(String[] args) { // create Tinkerpop graph backed by ArangoDB Configuration conf = new ArangoDBConfigurationBuilder() - .hosts("127.0.0.1:8529") + .hosts("172.28.0.1:8529") .user("root") .password("test") .database(DB_NAME)