in src/main/java/com/amazonaws/services/neptune/ExportPropertyGraphFromConfig.java [75:133]
public void run() {
try {
Timer.timedActivity("exporting property graph from config", (CheckedActivity.Runnable) () -> {
try (Cluster cluster = cloneStrategy.cloneCluster(
connection.clusterMetadata(),
connection.config(),
concurrency.config(),
featureToggles())) {
Directories directories = target.createDirectories();
JsonResource<GraphSchema, Boolean> configFileResource = directories.configFileResource();
JsonResource<ExportStats, GraphSchema> statsFileResource = directories.statsFileResource();
GraphSchema graphSchema = graphSchemaProvider.graphSchema();
ExportStats stats = new ExportStats();
PropertyGraphTargetConfig targetConfig = target.config(directories, printerOptions.config());
Collection<ExportSpecification> exportSpecifications = scope.exportSpecifications(
graphSchema,
gremlinFilters.filters(),
stats,
featureToggles());
try (NeptuneGremlinClient client = NeptuneGremlinClient.create(cluster, serialization.config());
GraphTraversalSource g = client.newTraversalSource()) {
ExportPropertyGraphJob exportJob = new ExportPropertyGraphJob(
exportSpecifications,
graphSchema,
g,
range.config(),
gremlinFilters.filters(),
cluster.concurrencyConfig(),
targetConfig, featureToggles(),
getMaxFileDescriptorCount()
);
graphSchema = exportJob.execute();
configFileResource.save(graphSchema, false);
statsFileResource.save(stats, graphSchema);
}
directories.writeRootDirectoryPathAsMessage(target.description(), target);
configFileResource.writeResourcePathAsMessage(target);
System.err.println();
System.err.println(stats.formatStats(graphSchema));
directories.writeRootDirectoryPathAsReturnValue(target);
onExportComplete(directories, stats, cluster, graphSchema);
}
});
} catch (Exception e) {
handleException(e);
}
}