Skip to content

Commit 8f0d3d6

Browse files
committed
Initialise GraphCatalogProcedureFacade only with what it needs
1 parent 052de7f commit 8f0d3d6

File tree

3 files changed

+37
-42
lines changed

3 files changed

+37
-42
lines changed

procedures/facade/src/main/java/org/neo4j/gds/procedures/GraphCatalogProcedureFacadeFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ public void accept(AutoCloseable autoCloseable) {
9191
graphDatabaseService,
9292
graphProjectMemoryUsageService,
9393
transactionContext,
94-
applicationsFacade,
94+
applicationsFacade.graphCatalog(),
9595
writeContext,
9696
procedureReturnColumns,
9797
databaseModeRestriction

procedures/graph-catalog-facade/src/main/java/org/neo4j/gds/procedures/catalog/GraphCatalogProcedureFacade.java

Lines changed: 31 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
package org.neo4j.gds.procedures.catalog;
2121

2222
import org.neo4j.gds.api.ProcedureReturnColumns;
23-
import org.neo4j.gds.applications.ApplicationsFacade;
2423
import org.neo4j.gds.applications.algorithms.machinery.MemoryEstimateResult;
2524
import org.neo4j.gds.applications.algorithms.machinery.RequestScopedDependencies;
2625
import org.neo4j.gds.applications.algorithms.machinery.WriteContext;
@@ -84,7 +83,7 @@ public class GraphCatalogProcedureFacade {
8483
private final DatabaseModeRestriction databaseModeRestriction;
8584

8685
// business facade
87-
private final ApplicationsFacade applicationsFacade;
86+
private final GraphCatalogApplications catalog;
8887

8988
/**
9089
* @param streamCloser A special thing needed for property streaming
@@ -95,7 +94,7 @@ public GraphCatalogProcedureFacade(
9594
GraphDatabaseService graphDatabaseService,
9695
GraphProjectMemoryUsageService graphProjectMemoryUsageService,
9796
TransactionContext transactionContext,
98-
ApplicationsFacade applicationsFacade,
97+
GraphCatalogApplications catalog,
9998
WriteContext writeContext,
10099
ProcedureReturnColumns procedureReturnColumns,
101100
DatabaseModeRestriction databaseModeRestriction
@@ -106,7 +105,7 @@ public GraphCatalogProcedureFacade(
106105
this.graphProjectMemoryUsageService = graphProjectMemoryUsageService;
107106
this.transactionContext = transactionContext;
108107

109-
this.applicationsFacade = applicationsFacade;
108+
this.catalog = catalog;
110109
this.writeContext = writeContext;
111110
this.procedureReturnColumns = procedureReturnColumns;
112111
this.databaseModeRestriction = databaseModeRestriction;
@@ -131,7 +130,7 @@ public <RETURN_TYPE> RETURN_TYPE graphExists(String graphName, Function<Boolean,
131130
}
132131

133132
public boolean graphExists(String graphName) {
134-
return catalog().graphExists(
133+
return catalog.graphExists(
135134
requestScopedDependencies.getUser(),
136135
requestScopedDependencies.getDatabaseId(),
137136
graphName
@@ -150,7 +149,7 @@ public Stream<GraphInfo> dropGraph(
150149
String databaseName,
151150
String username
152151
) throws IllegalArgumentException {
153-
var results = catalog().dropGraph(
152+
var results = catalog.dropGraph(
154153
graphNameOrListOfGraphNames,
155154
failIfMissing,
156155
databaseName,
@@ -171,7 +170,7 @@ public Stream<GraphInfoWithHistogram> listGraphs(String graphName) {
171170

172171
var displayDegreeDistribution = procedureReturnColumns.contains("degreeDistribution");
173172

174-
var results = catalog().listGraphs(
173+
var results = catalog.listGraphs(
175174
requestScopedDependencies.getUser(),
176175
graphName,
177176
displayDegreeDistribution,
@@ -195,7 +194,7 @@ public Stream<GraphProjectNativeResult> nativeProject(
195194
Object relationshipProjection,
196195
Map<String, Object> configuration
197196
) {
198-
var result = catalog().nativeProject(
197+
var result = catalog.nativeProject(
199198
requestScopedDependencies.getUser(),
200199
requestScopedDependencies.getDatabaseId(),
201200
graphDatabaseService,
@@ -219,7 +218,7 @@ public Stream<MemoryEstimateResult> estimateNativeProject(
219218
Object relationshipProjection,
220219
Map<String, Object> configuration
221220
) {
222-
var result = catalog().estimateNativeProject(
221+
var result = catalog.estimateNativeProject(
223222
requestScopedDependencies.getDatabaseId(),
224223
graphProjectMemoryUsageService,
225224
requestScopedDependencies.getTaskRegistryFactory(),
@@ -240,7 +239,7 @@ public Stream<GraphProjectCypherResult> cypherProject(
240239
String relationshipQuery,
241240
Map<String, Object> configuration
242241
) {
243-
var result = catalog().cypherProject(
242+
var result = catalog.cypherProject(
244243
requestScopedDependencies.getUser(),
245244
requestScopedDependencies.getDatabaseId(),
246245
graphDatabaseService,
@@ -263,7 +262,7 @@ public Stream<MemoryEstimateResult> estimateCypherProject(
263262
String relationshipQuery,
264263
Map<String, Object> configuration
265264
) {
266-
var result = catalog().estimateCypherProject(
265+
var result = catalog.estimateCypherProject(
267266
requestScopedDependencies.getDatabaseId(),
268267
graphProjectMemoryUsageService,
269268
requestScopedDependencies.getTaskRegistryFactory(),
@@ -285,7 +284,7 @@ public Stream<GraphFilterResult> subGraphProject(
285284
String relationshipFilter,
286285
Map<String, Object> configuration
287286
) {
288-
var result = catalog().subGraphProject(
287+
var result = catalog.subGraphProject(
289288
requestScopedDependencies.getUser(),
290289
requestScopedDependencies.getDatabaseId(),
291290
requestScopedDependencies.getTaskRegistryFactory(),
@@ -301,7 +300,7 @@ public Stream<GraphFilterResult> subGraphProject(
301300
}
302301

303302
public Stream<GraphMemoryUsage> sizeOf(String graphName) {
304-
var result = catalog().sizeOf(
303+
var result = catalog.sizeOf(
305304
requestScopedDependencies.getUser(),
306305
requestScopedDependencies.getDatabaseId(),
307306
graphName
@@ -315,7 +314,7 @@ public Stream<GraphDropNodePropertiesResult> dropNodeProperties(
315314
Object nodeProperties,
316315
Map<String, Object> configuration
317316
) {
318-
var result = catalog().dropNodeProperties(
317+
var result = catalog.dropNodeProperties(
319318
requestScopedDependencies.getUser(),
320319
requestScopedDependencies.getDatabaseId(),
321320
requestScopedDependencies.getTaskRegistryFactory(),
@@ -332,7 +331,7 @@ public Stream<GraphDropRelationshipResult> dropRelationships(
332331
String graphName,
333332
String relationshipType
334333
) {
335-
var result = catalog().dropRelationships(
334+
var result = catalog.dropRelationships(
336335
requestScopedDependencies.getUser(),
337336
requestScopedDependencies.getDatabaseId(),
338337
requestScopedDependencies.getTaskRegistryFactory(),
@@ -349,7 +348,7 @@ public Stream<GraphDropGraphPropertiesResult> dropGraphProperty(
349348
String graphProperty,
350349
Map<String, Object> configuration
351350
) {
352-
var numberOfPropertiesRemoved = catalog().dropGraphProperty(
351+
var numberOfPropertiesRemoved = catalog.dropGraphProperty(
353352
requestScopedDependencies.getUser(),
354353
requestScopedDependencies.getDatabaseId(),
355354
graphName,
@@ -371,7 +370,7 @@ public Stream<MutateLabelResult> mutateNodeLabel(
371370
String nodeLabel,
372371
Map<String, Object> configuration
373372
) {
374-
var result = catalog().mutateNodeLabel(
373+
var result = catalog.mutateNodeLabel(
375374
requestScopedDependencies.getUser(),
376375
requestScopedDependencies.getDatabaseId(),
377376
graphName,
@@ -387,7 +386,7 @@ public Stream<StreamGraphPropertyResult> streamGraphProperty(
387386
String graphProperty,
388387
Map<String, Object> configuration
389388
) {
390-
var result = catalog().streamGraphProperty(
389+
var result = catalog.streamGraphProperty(
391390
requestScopedDependencies.getUser(),
392391
requestScopedDependencies.getDatabaseId(),
393392
graphName,
@@ -442,7 +441,7 @@ private <T> Stream<T> streamNodePropertyOrProperties(
442441
) {
443442
var usesPropertyNameColumn = procedureReturnColumns.contains("nodeProperty");
444443

445-
var resultStream = catalog().streamNodeProperties(
444+
var resultStream = catalog.streamNodeProperties(
446445
requestScopedDependencies.getUser(),
447446
requestScopedDependencies.getDatabaseId(),
448447
requestScopedDependencies.getTaskRegistryFactory(),
@@ -500,7 +499,7 @@ public Stream<TopologyResult> streamRelationships(
500499
Object relationshipTypes,
501500
Map<String, Object> configuration
502501
) {
503-
return catalog().streamRelationships(
502+
return catalog.streamRelationships(
504503
requestScopedDependencies.getUser(),
505504
requestScopedDependencies.getDatabaseId(),
506505
graphName,
@@ -515,7 +514,7 @@ public Stream<NodePropertiesWriteResult> writeNodeProperties(
515514
Object nodeLabels,
516515
Map<String, Object> configuration
517516
) {
518-
var result = catalog().writeNodeProperties(
517+
var result = catalog.writeNodeProperties(
519518
requestScopedDependencies.getUser(),
520519
requestScopedDependencies.getDatabaseId(),
521520
writeContext.nodePropertyExporterBuilder(),
@@ -537,7 +536,7 @@ public Stream<WriteRelationshipPropertiesResult> writeRelationshipProperties(
537536
List<String> relationshipProperties,
538537
Map<String, Object> configuration
539538
) {
540-
var result = catalog().writeRelationshipProperties(
539+
var result = catalog.writeRelationshipProperties(
541540
requestScopedDependencies.getUser(),
542541
requestScopedDependencies.getDatabaseId(),
543542
writeContext.relationshipPropertiesExporterBuilder(),
@@ -556,7 +555,7 @@ public Stream<WriteLabelResult> writeNodeLabel(
556555
String nodeLabel,
557556
Map<String, Object> configuration
558557
) {
559-
var result = catalog().writeNodeLabel(
558+
var result = catalog.writeNodeLabel(
560559
requestScopedDependencies.getUser(),
561560
requestScopedDependencies.getDatabaseId(),
562561
writeContext.nodeLabelExporterBuilder(),
@@ -575,7 +574,7 @@ public Stream<WriteRelationshipResult> writeRelationships(
575574
String relationshipProperty,
576575
Map<String, Object> configuration
577576
) {
578-
var result = catalog().writeRelationships(
577+
var result = catalog.writeRelationships(
579578
requestScopedDependencies.getUser(),
580579
requestScopedDependencies.getDatabaseId(),
581580
writeContext.relationshipExporterBuilder(),
@@ -596,7 +595,7 @@ public Stream<RandomWalkSamplingResult> sampleRandomWalkWithRestarts(
596595
String originGraphName,
597596
Map<String, Object> configuration
598597
) {
599-
var result = catalog().sampleRandomWalkWithRestarts(
598+
var result = catalog.sampleRandomWalkWithRestarts(
600599
requestScopedDependencies.getUser(),
601600
requestScopedDependencies.getDatabaseId(),
602601
requestScopedDependencies.getTaskRegistryFactory(),
@@ -614,7 +613,7 @@ public Stream<RandomWalkSamplingResult> sampleCommonNeighbourAwareRandomWalk(
614613
String originGraphName,
615614
Map<String, Object> configuration
616615
) {
617-
var result = catalog().sampleCommonNeighbourAwareRandomWalk(
616+
var result = catalog.sampleCommonNeighbourAwareRandomWalk(
618617
requestScopedDependencies.getUser(),
619618
requestScopedDependencies.getDatabaseId(),
620619
requestScopedDependencies.getTaskRegistryFactory(),
@@ -631,7 +630,7 @@ public Stream<MemoryEstimateResult> estimateCommonNeighbourAwareRandomWalk(
631630
String graphName,
632631
Map<String, Object> configuration
633632
) {
634-
var result = catalog().estimateCommonNeighbourAwareRandomWalk(
633+
var result = catalog.estimateCommonNeighbourAwareRandomWalk(
635634
requestScopedDependencies.getUser(),
636635
requestScopedDependencies.getDatabaseId(),
637636
graphName,
@@ -645,13 +644,13 @@ public Stream<FileExportResult> exportToCsv(
645644
String graphName,
646645
Map<String, Object> configuration
647646
) {
648-
var result = catalog().exportToCsv(graphName, configuration);
647+
var result = catalog.exportToCsv(graphName, configuration);
649648

650649
return Stream.of(result);
651650
}
652651

653652
public Stream<MemoryEstimateResult> exportToCsvEstimate(String graphName, Map<String, Object> configuration) {
654-
var result = catalog().exportToCsvEstimate(graphName, configuration);
653+
var result = catalog.exportToCsvEstimate(graphName, configuration);
655654

656655
return Stream.of(result);
657656
}
@@ -662,7 +661,7 @@ public Stream<DatabaseExportResult> exportToDatabase(
662661
) {
663662
databaseModeRestriction.ensureNotOnCluster();
664663

665-
var result = catalog().exportToDatabase(graphName, configuration);
664+
var result = catalog.exportToDatabase(graphName, configuration);
666665

667666
return Stream.of(result);
668667
}
@@ -673,7 +672,7 @@ public Stream<GraphGenerationStats> generateGraph(
673672
long averageDegree,
674673
Map<String, Object> configuration
675674
) {
676-
var result = catalog().generateGraph(
675+
var result = catalog.generateGraph(
677676
requestScopedDependencies.getUser(),
678677
requestScopedDependencies.getDatabaseId(),
679678
graphName,
@@ -694,7 +693,7 @@ private <T> Stream<T> streamRelationshipPropertyOrProperties(
694693
) {
695694
var usesPropertyNameColumn = procedureReturnColumns.contains("relationshipProperty");
696695

697-
var resultStream = catalog().streamRelationshipProperties(
696+
var resultStream = catalog.streamRelationshipProperties(
698697
requestScopedDependencies.getUser(),
699698
requestScopedDependencies.getDatabaseId(),
700699
requestScopedDependencies.getTaskRegistryFactory(),
@@ -720,8 +719,4 @@ private String validateValue(String graphName) {
720719

721720
return graphName;
722721
}
723-
724-
private GraphCatalogApplications catalog() {
725-
return applicationsFacade.graphCatalog();
726-
}
727722
}

procedures/graph-catalog-facade/src/test/java/org/neo4j/gds/procedures/catalog/GraphCatalogProcedureFacadeTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ void shouldDetermineIfGraphExists() {
7979
null,
8080
null,
8181
null,
82-
new ApplicationsFacadeBuilder().with(businessFacade).build(),
82+
new ApplicationsFacadeBuilder().with(businessFacade).build().graphCatalog(),
8383
WriteContext.builder().build(),
8484
null,
8585
null
@@ -108,7 +108,7 @@ void shouldListGraphsWithoutDegreeDistribution() {
108108
null,
109109
null,
110110
null,
111-
new ApplicationsFacadeBuilder().with(businessFacade).build(),
111+
new ApplicationsFacadeBuilder().with(businessFacade).build().graphCatalog(),
112112
procedureContext,
113113
procedureReturnColumns,
114114
null
@@ -145,7 +145,7 @@ void shouldListGraphsWithDegreeDistribution() {
145145
null,
146146
null,
147147
null,
148-
new ApplicationsFacadeBuilder().with(businessFacade).build(),
148+
new ApplicationsFacadeBuilder().with(businessFacade).build().graphCatalog(),
149149
procedureContext,
150150
procedureReturnColumns,
151151
null
@@ -194,7 +194,7 @@ void shouldListGraphsWithoutMemoryUsage() {
194194
null,
195195
null,
196196
null,
197-
new ApplicationsFacadeBuilder().with(businessFacade).build(),
197+
new ApplicationsFacadeBuilder().with(businessFacade).build().graphCatalog(),
198198
procedureContext,
199199
procedureReturnColumns,
200200
null
@@ -234,7 +234,7 @@ void shouldListGraphsWithMemoryUsage(String returnColumn) {
234234
null,
235235
null,
236236
null,
237-
new ApplicationsFacadeBuilder().with(businessFacade).build(),
237+
new ApplicationsFacadeBuilder().with(businessFacade).build().graphCatalog(),
238238
procedureContext,
239239
procedureReturnColumns,
240240
null

0 commit comments

Comments
 (0)