Search in sources :

Example 26 with DatabaseManagementServiceBuilder

use of org.neo4j.dbms.api.DatabaseManagementServiceBuilder in project neo4j-documentation by neo4j.

the class StartWithConfigurationDocTest method loadFromFile.

@Test
void loadFromFile() {
    String pathToConfig = "src/test/resources/";
    // tag::startDbWithConfig[]
    DatabaseManagementService managementService = new DatabaseManagementServiceBuilder(directory).loadPropertiesFromFile(Path.of(pathToConfig + "neo4j.conf")).build();
    GraphDatabaseService graphDb = managementService.database(DEFAULT_DATABASE_NAME);
    // end::startDbWithConfig[]
    Assertions.assertNotNull(graphDb);
    managementService.shutdown();
}
Also used : GraphDatabaseService(org.neo4j.graphdb.GraphDatabaseService) DatabaseManagementServiceBuilder(org.neo4j.dbms.api.DatabaseManagementServiceBuilder) DatabaseManagementService(org.neo4j.dbms.api.DatabaseManagementService) Test(org.junit.jupiter.api.Test)

Example 27 with DatabaseManagementServiceBuilder

use of org.neo4j.dbms.api.DatabaseManagementServiceBuilder in project neo4j by neo4j.

the class IndexConfigMigrationIT method shouldHaveCorrectDataAndIndexConfiguration.

@Test
void shouldHaveCorrectDataAndIndexConfiguration() throws IOException, IndexNotFoundKernelException {
    Path databaseDir = databaseLayout.databaseDirectory();
    unzip(getClass(), ZIP_FILE_3_5, databaseDir);
    // when
    DatabaseManagementServiceBuilder builder = new TestDatabaseManagementServiceBuilder(testDirectory.homePath()).setConfig(GraphDatabaseSettings.allow_upgrade, true);
    DatabaseManagementService dbms = builder.build();
    try {
        GraphDatabaseAPI db = (GraphDatabaseAPI) dbms.database(DEFAULT_DATABASE_NAME);
        Set<CoordinateReferenceSystem> allCRS = Iterables.asSet(all());
        try (Transaction tx = db.beginTx()) {
            validateIndexes(tx);
            for (Node node : tx.getAllNodes()) {
                hasLabels(node, label1, label2, label3, label4);
                Object property = node.getProperty(propKey);
                if (property instanceof PointValue) {
                    allCRS.remove(((PointValue) property).getCoordinateReferenceSystem());
                }
            }
            assertTrue(allCRS.isEmpty(), "Expected all CRS to be represented in store, but missing " + allCRS);
            assertIndexConfiguration(db, tx);
            assertFulltextIndexConfiguration(db, tx);
            tx.commit();
        }
    } finally {
        dbms.shutdown();
    }
    // Assert old index files has been removed
    Path baseSchemaIndexFolder = IndexDirectoryStructure.baseSchemaIndexFolder(databaseDir);
    Set<Path> retiredIndexProviderDirectories = Set.of(baseSchemaIndexFolder.resolve("lucene"), baseSchemaIndexFolder.resolve("lucene-1.0"), baseSchemaIndexFolder.resolve("lucene_native-1.0"), baseSchemaIndexFolder.resolve("lucene_native-2.0"));
    try (Stream<Path> list = Files.list(baseSchemaIndexFolder)) {
        list.forEach(indexProviderDirectory -> assertFalse(retiredIndexProviderDirectories.contains(indexProviderDirectory), "Expected old index provider directories to be deleted during migration but store still had directory " + indexProviderDirectory));
    }
}
Also used : Path(java.nio.file.Path) PointValue(org.neo4j.values.storable.PointValue) Node(org.neo4j.graphdb.Node) TestDatabaseManagementServiceBuilder(org.neo4j.test.TestDatabaseManagementServiceBuilder) GraphDatabaseAPI(org.neo4j.kernel.internal.GraphDatabaseAPI) InternalTransaction(org.neo4j.kernel.impl.coreapi.InternalTransaction) Transaction(org.neo4j.graphdb.Transaction) TestDatabaseManagementServiceBuilder(org.neo4j.test.TestDatabaseManagementServiceBuilder) DatabaseManagementServiceBuilder(org.neo4j.dbms.api.DatabaseManagementServiceBuilder) CoordinateReferenceSystem(org.neo4j.values.storable.CoordinateReferenceSystem) DatabaseManagementService(org.neo4j.dbms.api.DatabaseManagementService) Test(org.junit.jupiter.api.Test)

Example 28 with DatabaseManagementServiceBuilder

use of org.neo4j.dbms.api.DatabaseManagementServiceBuilder in project neo4j by neo4j.

the class StartOldDbOnCurrentVersionAndCreateFusionIndexIT method create3_5Database.

@Disabled("Here as reference for how 3.5 db was created")
@Test
void create3_5Database() throws Exception {
    Path storeDir = tempStoreDirectory();
    DatabaseManagementServiceBuilder builder = new TestDatabaseManagementServiceBuilder(storeDir);
    createIndexDataAndShutdown(builder, "lucene-1.0", Provider.LUCENE_10.label);
    createIndexDataAndShutdown(builder, "lucene+native-1.0", Provider.FUSION_10.label);
    createIndexDataAndShutdown(builder, "lucene+native-2.0", Provider.FUSION_20.label);
    createIndexDataAndShutdown(builder, GraphDatabaseSettings.SchemaIndex.NATIVE_BTREE10.providerName(), Provider.BTREE_10.label, db -> {
        try (Transaction tx = db.beginTx()) {
            tx.execute("CALL db.index.fulltext.createNodeIndex('fts1', ['Fts1'], ['prop1'] )").close();
            tx.execute("CALL db.index.fulltext.createNodeIndex('fts2', ['Fts2', 'Fts3'], ['prop1', 'prop2'] )").close();
            tx.execute("CALL db.index.fulltext.createNodeIndex('fts3', ['Fts4'], ['prop1'], {eventually_consistent: 'true'} )").close();
            tx.execute("CALL db.index.fulltext.createRelationshipIndex('fts4', ['FtsRel1', 'FtsRel2'], ['prop1', 'prop2'], " + "{eventually_consistent: 'true'} )").close();
            tx.commit();
        }
        try (Transaction tx = db.beginTx()) {
            tx.schema().awaitIndexesOnline(10, TimeUnit.MINUTES);
            Node node = tx.createNode(Label.label("Fts1"), Label.label("Fts2"), Label.label("Fts3"), Label.label("Fts4"));
            node.setProperty("prop1", "abc");
            node.setProperty("prop2", "abc");
            node.createRelationshipTo(node, RelationshipType.withName("FtsRel1")).setProperty("prop1", "abc");
            node.createRelationshipTo(node, RelationshipType.withName("FtsRel2")).setProperty("prop2", "abc");
            tx.commit();
        }
        try (Transaction tx = db.beginTx()) {
            tx.execute("call db.index.fulltext.awaitEventuallyConsistentIndexRefresh").close();
            tx.commit();
        }
    });
    Path zipFile = storeDir.resolveSibling(storeDir.getFileName().toString() + ".zip");
    ZipUtils.zip(new DefaultFileSystemAbstraction(), storeDir, zipFile);
    System.out.println("Db created in " + zipFile.toAbsolutePath());
}
Also used : Path(java.nio.file.Path) TestDatabaseManagementServiceBuilder(org.neo4j.test.TestDatabaseManagementServiceBuilder) DefaultFileSystemAbstraction(org.neo4j.io.fs.DefaultFileSystemAbstraction) InternalTransaction(org.neo4j.kernel.impl.coreapi.InternalTransaction) Transaction(org.neo4j.graphdb.Transaction) KernelTransaction(org.neo4j.kernel.api.KernelTransaction) Node(org.neo4j.graphdb.Node) TestDatabaseManagementServiceBuilder(org.neo4j.test.TestDatabaseManagementServiceBuilder) DatabaseManagementServiceBuilder(org.neo4j.dbms.api.DatabaseManagementServiceBuilder) Test(org.junit.jupiter.api.Test) Disabled(org.junit.jupiter.api.Disabled)

Example 29 with DatabaseManagementServiceBuilder

use of org.neo4j.dbms.api.DatabaseManagementServiceBuilder in project neo4j by neo4j.

the class CheckPointerIntegrationTest method shouldBeAbleToStartAndShutdownMultipleTimesTheDBWithoutCommittingTransactions.

@Test
void shouldBeAbleToStartAndShutdownMultipleTimesTheDBWithoutCommittingTransactions() throws Throwable {
    // given
    DatabaseManagementServiceBuilder databaseManagementServiceBuilder = builder.setConfig(check_point_interval_time, Duration.ofMinutes(300)).setConfig(check_point_interval_tx, 10000).setConfig(logical_log_rotation_threshold, gibiBytes(1));
    // when
    DatabaseManagementService managementService = databaseManagementServiceBuilder.build();
    managementService.shutdown();
    managementService = databaseManagementServiceBuilder.build();
    managementService.shutdown();
    // then - 2 check points have been written in the log
    managementService = builder.build();
    try {
        var checkpoints = checkPointsInTxLog(managementService.database(DEFAULT_DATABASE_NAME));
        assertEquals(2, checkpoints.size());
    } finally {
        managementService.shutdown();
    }
}
Also used : TestDatabaseManagementServiceBuilder(org.neo4j.test.TestDatabaseManagementServiceBuilder) DatabaseManagementServiceBuilder(org.neo4j.dbms.api.DatabaseManagementServiceBuilder) DatabaseManagementService(org.neo4j.dbms.api.DatabaseManagementService) Test(org.junit.jupiter.api.Test)

Example 30 with DatabaseManagementServiceBuilder

use of org.neo4j.dbms.api.DatabaseManagementServiceBuilder in project neo4j by neo4j.

the class DefaultSchemaIndexConfigTest method shouldUseConfiguredIndexProvider.

@ParameterizedTest
@MethodSource("providers")
void shouldUseConfiguredIndexProvider(GraphDatabaseSettings.SchemaIndex provider) {
    // given
    DatabaseManagementServiceBuilder databaseManagementServiceBuilder = dbBuilder.setConfig(default_schema_provider, provider == null ? null : provider.providerName());
    DatabaseManagementService managementService = databaseManagementServiceBuilder.build();
    GraphDatabaseService db = managementService.database(DEFAULT_DATABASE_NAME);
    try {
        // when
        createIndex(db);
        // then
        assertIndexProvider(provider == null ? GenericNativeIndexProvider.DESCRIPTOR.name() : provider.providerName());
    } finally {
        managementService.shutdown();
    }
}
Also used : GraphDatabaseService(org.neo4j.graphdb.GraphDatabaseService) TestDatabaseManagementServiceBuilder(org.neo4j.test.TestDatabaseManagementServiceBuilder) DatabaseManagementServiceBuilder(org.neo4j.dbms.api.DatabaseManagementServiceBuilder) DatabaseManagementService(org.neo4j.dbms.api.DatabaseManagementService) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) MethodSource(org.junit.jupiter.params.provider.MethodSource)

Aggregations

DatabaseManagementServiceBuilder (org.neo4j.dbms.api.DatabaseManagementServiceBuilder)30 DatabaseManagementService (org.neo4j.dbms.api.DatabaseManagementService)19 GraphDatabaseService (org.neo4j.graphdb.GraphDatabaseService)13 Transaction (org.neo4j.graphdb.Transaction)11 Node (org.neo4j.graphdb.Node)10 TestDatabaseManagementServiceBuilder (org.neo4j.test.TestDatabaseManagementServiceBuilder)10 Test (org.junit.jupiter.api.Test)9 Path (java.nio.file.Path)7 ByteArrayOutputStream (java.io.ByteArrayOutputStream)2 OutputStream (java.io.OutputStream)2 Test (org.junit.Test)2 BeforeEach (org.junit.jupiter.api.BeforeEach)2 Disabled (org.junit.jupiter.api.Disabled)2 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)2 MethodSource (org.junit.jupiter.params.provider.MethodSource)2 Relationship (org.neo4j.graphdb.Relationship)2 RelationshipType (org.neo4j.graphdb.RelationshipType)2 Result (org.neo4j.graphdb.Result)2 DefaultFileSystemAbstraction (org.neo4j.io.fs.DefaultFileSystemAbstraction)2 EphemeralFileSystemAbstraction (org.neo4j.io.fs.EphemeralFileSystemAbstraction)2