From 8f0d3d69f3b955cda2acb227bb449faef6b229a3 Mon Sep 17 00:00:00 2001 From: Veselin Nikolov Date: Thu, 5 Sep 2024 14:53:07 +0100 Subject: [PATCH] Initialise GraphCatalogProcedureFacade only with what it needs --- .../GraphCatalogProcedureFacadeFactory.java | 2 +- .../catalog/GraphCatalogProcedureFacade.java | 67 +++++++++---------- .../GraphCatalogProcedureFacadeTest.java | 10 +-- 3 files changed, 37 insertions(+), 42 deletions(-) diff --git a/procedures/facade/src/main/java/org/neo4j/gds/procedures/GraphCatalogProcedureFacadeFactory.java b/procedures/facade/src/main/java/org/neo4j/gds/procedures/GraphCatalogProcedureFacadeFactory.java index 28828a746a..e1ca72c183 100644 --- a/procedures/facade/src/main/java/org/neo4j/gds/procedures/GraphCatalogProcedureFacadeFactory.java +++ b/procedures/facade/src/main/java/org/neo4j/gds/procedures/GraphCatalogProcedureFacadeFactory.java @@ -91,7 +91,7 @@ public void accept(AutoCloseable autoCloseable) { graphDatabaseService, graphProjectMemoryUsageService, transactionContext, - applicationsFacade, + applicationsFacade.graphCatalog(), writeContext, procedureReturnColumns, databaseModeRestriction diff --git a/procedures/graph-catalog-facade/src/main/java/org/neo4j/gds/procedures/catalog/GraphCatalogProcedureFacade.java b/procedures/graph-catalog-facade/src/main/java/org/neo4j/gds/procedures/catalog/GraphCatalogProcedureFacade.java index 5e6f5f8adb..37a380cd28 100644 --- a/procedures/graph-catalog-facade/src/main/java/org/neo4j/gds/procedures/catalog/GraphCatalogProcedureFacade.java +++ b/procedures/graph-catalog-facade/src/main/java/org/neo4j/gds/procedures/catalog/GraphCatalogProcedureFacade.java @@ -20,7 +20,6 @@ package org.neo4j.gds.procedures.catalog; import org.neo4j.gds.api.ProcedureReturnColumns; -import org.neo4j.gds.applications.ApplicationsFacade; import org.neo4j.gds.applications.algorithms.machinery.MemoryEstimateResult; import org.neo4j.gds.applications.algorithms.machinery.RequestScopedDependencies; import org.neo4j.gds.applications.algorithms.machinery.WriteContext; @@ -84,7 +83,7 @@ public class GraphCatalogProcedureFacade { private final DatabaseModeRestriction databaseModeRestriction; // business facade - private final ApplicationsFacade applicationsFacade; + private final GraphCatalogApplications catalog; /** * @param streamCloser A special thing needed for property streaming @@ -95,7 +94,7 @@ public GraphCatalogProcedureFacade( GraphDatabaseService graphDatabaseService, GraphProjectMemoryUsageService graphProjectMemoryUsageService, TransactionContext transactionContext, - ApplicationsFacade applicationsFacade, + GraphCatalogApplications catalog, WriteContext writeContext, ProcedureReturnColumns procedureReturnColumns, DatabaseModeRestriction databaseModeRestriction @@ -106,7 +105,7 @@ public GraphCatalogProcedureFacade( this.graphProjectMemoryUsageService = graphProjectMemoryUsageService; this.transactionContext = transactionContext; - this.applicationsFacade = applicationsFacade; + this.catalog = catalog; this.writeContext = writeContext; this.procedureReturnColumns = procedureReturnColumns; this.databaseModeRestriction = databaseModeRestriction; @@ -131,7 +130,7 @@ public RETURN_TYPE graphExists(String graphName, Function dropGraph( String databaseName, String username ) throws IllegalArgumentException { - var results = catalog().dropGraph( + var results = catalog.dropGraph( graphNameOrListOfGraphNames, failIfMissing, databaseName, @@ -171,7 +170,7 @@ public Stream listGraphs(String graphName) { var displayDegreeDistribution = procedureReturnColumns.contains("degreeDistribution"); - var results = catalog().listGraphs( + var results = catalog.listGraphs( requestScopedDependencies.getUser(), graphName, displayDegreeDistribution, @@ -195,7 +194,7 @@ public Stream nativeProject( Object relationshipProjection, Map configuration ) { - var result = catalog().nativeProject( + var result = catalog.nativeProject( requestScopedDependencies.getUser(), requestScopedDependencies.getDatabaseId(), graphDatabaseService, @@ -219,7 +218,7 @@ public Stream estimateNativeProject( Object relationshipProjection, Map configuration ) { - var result = catalog().estimateNativeProject( + var result = catalog.estimateNativeProject( requestScopedDependencies.getDatabaseId(), graphProjectMemoryUsageService, requestScopedDependencies.getTaskRegistryFactory(), @@ -240,7 +239,7 @@ public Stream cypherProject( String relationshipQuery, Map configuration ) { - var result = catalog().cypherProject( + var result = catalog.cypherProject( requestScopedDependencies.getUser(), requestScopedDependencies.getDatabaseId(), graphDatabaseService, @@ -263,7 +262,7 @@ public Stream estimateCypherProject( String relationshipQuery, Map configuration ) { - var result = catalog().estimateCypherProject( + var result = catalog.estimateCypherProject( requestScopedDependencies.getDatabaseId(), graphProjectMemoryUsageService, requestScopedDependencies.getTaskRegistryFactory(), @@ -285,7 +284,7 @@ public Stream subGraphProject( String relationshipFilter, Map configuration ) { - var result = catalog().subGraphProject( + var result = catalog.subGraphProject( requestScopedDependencies.getUser(), requestScopedDependencies.getDatabaseId(), requestScopedDependencies.getTaskRegistryFactory(), @@ -301,7 +300,7 @@ public Stream subGraphProject( } public Stream sizeOf(String graphName) { - var result = catalog().sizeOf( + var result = catalog.sizeOf( requestScopedDependencies.getUser(), requestScopedDependencies.getDatabaseId(), graphName @@ -315,7 +314,7 @@ public Stream dropNodeProperties( Object nodeProperties, Map configuration ) { - var result = catalog().dropNodeProperties( + var result = catalog.dropNodeProperties( requestScopedDependencies.getUser(), requestScopedDependencies.getDatabaseId(), requestScopedDependencies.getTaskRegistryFactory(), @@ -332,7 +331,7 @@ public Stream dropRelationships( String graphName, String relationshipType ) { - var result = catalog().dropRelationships( + var result = catalog.dropRelationships( requestScopedDependencies.getUser(), requestScopedDependencies.getDatabaseId(), requestScopedDependencies.getTaskRegistryFactory(), @@ -349,7 +348,7 @@ public Stream dropGraphProperty( String graphProperty, Map configuration ) { - var numberOfPropertiesRemoved = catalog().dropGraphProperty( + var numberOfPropertiesRemoved = catalog.dropGraphProperty( requestScopedDependencies.getUser(), requestScopedDependencies.getDatabaseId(), graphName, @@ -371,7 +370,7 @@ public Stream mutateNodeLabel( String nodeLabel, Map configuration ) { - var result = catalog().mutateNodeLabel( + var result = catalog.mutateNodeLabel( requestScopedDependencies.getUser(), requestScopedDependencies.getDatabaseId(), graphName, @@ -387,7 +386,7 @@ public Stream streamGraphProperty( String graphProperty, Map configuration ) { - var result = catalog().streamGraphProperty( + var result = catalog.streamGraphProperty( requestScopedDependencies.getUser(), requestScopedDependencies.getDatabaseId(), graphName, @@ -442,7 +441,7 @@ private Stream streamNodePropertyOrProperties( ) { var usesPropertyNameColumn = procedureReturnColumns.contains("nodeProperty"); - var resultStream = catalog().streamNodeProperties( + var resultStream = catalog.streamNodeProperties( requestScopedDependencies.getUser(), requestScopedDependencies.getDatabaseId(), requestScopedDependencies.getTaskRegistryFactory(), @@ -500,7 +499,7 @@ public Stream streamRelationships( Object relationshipTypes, Map configuration ) { - return catalog().streamRelationships( + return catalog.streamRelationships( requestScopedDependencies.getUser(), requestScopedDependencies.getDatabaseId(), graphName, @@ -515,7 +514,7 @@ public Stream writeNodeProperties( Object nodeLabels, Map configuration ) { - var result = catalog().writeNodeProperties( + var result = catalog.writeNodeProperties( requestScopedDependencies.getUser(), requestScopedDependencies.getDatabaseId(), writeContext.nodePropertyExporterBuilder(), @@ -537,7 +536,7 @@ public Stream writeRelationshipProperties( List relationshipProperties, Map configuration ) { - var result = catalog().writeRelationshipProperties( + var result = catalog.writeRelationshipProperties( requestScopedDependencies.getUser(), requestScopedDependencies.getDatabaseId(), writeContext.relationshipPropertiesExporterBuilder(), @@ -556,7 +555,7 @@ public Stream writeNodeLabel( String nodeLabel, Map configuration ) { - var result = catalog().writeNodeLabel( + var result = catalog.writeNodeLabel( requestScopedDependencies.getUser(), requestScopedDependencies.getDatabaseId(), writeContext.nodeLabelExporterBuilder(), @@ -575,7 +574,7 @@ public Stream writeRelationships( String relationshipProperty, Map configuration ) { - var result = catalog().writeRelationships( + var result = catalog.writeRelationships( requestScopedDependencies.getUser(), requestScopedDependencies.getDatabaseId(), writeContext.relationshipExporterBuilder(), @@ -596,7 +595,7 @@ public Stream sampleRandomWalkWithRestarts( String originGraphName, Map configuration ) { - var result = catalog().sampleRandomWalkWithRestarts( + var result = catalog.sampleRandomWalkWithRestarts( requestScopedDependencies.getUser(), requestScopedDependencies.getDatabaseId(), requestScopedDependencies.getTaskRegistryFactory(), @@ -614,7 +613,7 @@ public Stream sampleCommonNeighbourAwareRandomWalk( String originGraphName, Map configuration ) { - var result = catalog().sampleCommonNeighbourAwareRandomWalk( + var result = catalog.sampleCommonNeighbourAwareRandomWalk( requestScopedDependencies.getUser(), requestScopedDependencies.getDatabaseId(), requestScopedDependencies.getTaskRegistryFactory(), @@ -631,7 +630,7 @@ public Stream estimateCommonNeighbourAwareRandomWalk( String graphName, Map configuration ) { - var result = catalog().estimateCommonNeighbourAwareRandomWalk( + var result = catalog.estimateCommonNeighbourAwareRandomWalk( requestScopedDependencies.getUser(), requestScopedDependencies.getDatabaseId(), graphName, @@ -645,13 +644,13 @@ public Stream exportToCsv( String graphName, Map configuration ) { - var result = catalog().exportToCsv(graphName, configuration); + var result = catalog.exportToCsv(graphName, configuration); return Stream.of(result); } public Stream exportToCsvEstimate(String graphName, Map configuration) { - var result = catalog().exportToCsvEstimate(graphName, configuration); + var result = catalog.exportToCsvEstimate(graphName, configuration); return Stream.of(result); } @@ -662,7 +661,7 @@ public Stream exportToDatabase( ) { databaseModeRestriction.ensureNotOnCluster(); - var result = catalog().exportToDatabase(graphName, configuration); + var result = catalog.exportToDatabase(graphName, configuration); return Stream.of(result); } @@ -673,7 +672,7 @@ public Stream generateGraph( long averageDegree, Map configuration ) { - var result = catalog().generateGraph( + var result = catalog.generateGraph( requestScopedDependencies.getUser(), requestScopedDependencies.getDatabaseId(), graphName, @@ -694,7 +693,7 @@ private Stream streamRelationshipPropertyOrProperties( ) { var usesPropertyNameColumn = procedureReturnColumns.contains("relationshipProperty"); - var resultStream = catalog().streamRelationshipProperties( + var resultStream = catalog.streamRelationshipProperties( requestScopedDependencies.getUser(), requestScopedDependencies.getDatabaseId(), requestScopedDependencies.getTaskRegistryFactory(), @@ -720,8 +719,4 @@ private String validateValue(String graphName) { return graphName; } - - private GraphCatalogApplications catalog() { - return applicationsFacade.graphCatalog(); - } } diff --git a/procedures/graph-catalog-facade/src/test/java/org/neo4j/gds/procedures/catalog/GraphCatalogProcedureFacadeTest.java b/procedures/graph-catalog-facade/src/test/java/org/neo4j/gds/procedures/catalog/GraphCatalogProcedureFacadeTest.java index 60bb6d8804..7de5ed1684 100644 --- a/procedures/graph-catalog-facade/src/test/java/org/neo4j/gds/procedures/catalog/GraphCatalogProcedureFacadeTest.java +++ b/procedures/graph-catalog-facade/src/test/java/org/neo4j/gds/procedures/catalog/GraphCatalogProcedureFacadeTest.java @@ -79,7 +79,7 @@ void shouldDetermineIfGraphExists() { null, null, null, - new ApplicationsFacadeBuilder().with(businessFacade).build(), + new ApplicationsFacadeBuilder().with(businessFacade).build().graphCatalog(), WriteContext.builder().build(), null, null @@ -108,7 +108,7 @@ void shouldListGraphsWithoutDegreeDistribution() { null, null, null, - new ApplicationsFacadeBuilder().with(businessFacade).build(), + new ApplicationsFacadeBuilder().with(businessFacade).build().graphCatalog(), procedureContext, procedureReturnColumns, null @@ -145,7 +145,7 @@ void shouldListGraphsWithDegreeDistribution() { null, null, null, - new ApplicationsFacadeBuilder().with(businessFacade).build(), + new ApplicationsFacadeBuilder().with(businessFacade).build().graphCatalog(), procedureContext, procedureReturnColumns, null @@ -194,7 +194,7 @@ void shouldListGraphsWithoutMemoryUsage() { null, null, null, - new ApplicationsFacadeBuilder().with(businessFacade).build(), + new ApplicationsFacadeBuilder().with(businessFacade).build().graphCatalog(), procedureContext, procedureReturnColumns, null @@ -234,7 +234,7 @@ void shouldListGraphsWithMemoryUsage(String returnColumn) { null, null, null, - new ApplicationsFacadeBuilder().with(businessFacade).build(), + new ApplicationsFacadeBuilder().with(businessFacade).build().graphCatalog(), procedureContext, procedureReturnColumns, null