public AutoIndexManager(MetaData metaData, Configuration configuration, Neo4jSession session) { this.mode = configuration.getAutoIndex(); this.dumpDir = configuration.getDumpDir(); this.dumpFilename = configuration.getDumpFilename(); this.session = session; this.indexes = initialiseAutoIndex(metaData); }
/** * Constructs a new {@link SessionFactory} by initialising the object-graph mapping meta-data from the given list of domain * object packages, and also sets the baseConfiguration to be used. * <p> * The package names passed to this constructor should not contain wildcards or trailing full stops, for example, * "org.springframework.data.neo4j.example.domain" would be fine. The default behaviour is for sub-packages to be scanned * and you can also specify fully-qualified class names if you want to cherry pick particular classes. * </p> * Indexes will also be checked or built unless auto index mode is set to <code>NONE</code>. * * @param configuration The baseConfiguration to use * @param packages The packages to scan for domain objects. They will be merged with the configuration. */ public SessionFactory(Configuration configuration, String... packages) { this(newConfiguredDriverInstance(configuration), configuration.mergeBasePackagesWith(packages)); if (configuration.getAutoIndex() != NONE) { runAutoIndexManager(configuration); } }
@Test public void shouldConfigureFromFilesystemPropertiesFileURI() throws Exception { File file = new File(getConfigFileAsRelativePath()); FileConfigurationSource source = new FileConfigurationSource(file.toURI().toString()); Configuration configuration = new Configuration.Builder(source).build(); assertThat(configuration.getAutoIndex()).isEqualTo(AutoIndexMode.NONE); assertThat(configuration.getDriverClassName()).isEqualTo("org.neo4j.ogm.drivers.http.driver.HttpDriver"); assertThat(configuration.getCredentials().credentials().toString()).isEqualTo("bmVvNGo6cGFzc3dvcmQ="); assertThat(configuration.getURI()).isEqualTo("http://localhost:7474"); }
@Test public void shouldConfigureFromFilesystemPropertiesFilePath() throws Exception { File file = new File(getConfigFileAsRelativePath()); FileConfigurationSource source = new FileConfigurationSource(file.getAbsolutePath()); Configuration configuration = new Configuration.Builder(source).build(); assertThat(configuration.getAutoIndex()).isEqualTo(AutoIndexMode.NONE); assertThat(configuration.getDriverClassName()).isEqualTo("org.neo4j.ogm.drivers.http.driver.HttpDriver"); assertThat(configuration.getCredentials().credentials().toString()).isEqualTo("bmVvNGo6cGFzc3dvcmQ="); assertThat(configuration.getURI()).isEqualTo("http://localhost:7474"); }
@Test public void shouldPreserveNoneConfiguration() { Configuration configuration = getBaseConfiguration().autoIndex("none").build(); assertThat(configuration.getAutoIndex()).isEqualTo(AutoIndexMode.NONE); }
@Test public void shouldConfigureFromNameSpacePropertiesFile() { Configuration configuration = new Configuration.Builder( new ClasspathConfigurationSource("ogm-namespace.properties")).build(); assertThat(configuration.getAutoIndex()).isEqualTo(AutoIndexMode.DUMP); assertThat(configuration.getDumpDir()).isEqualTo("hello"); assertThat(configuration.getDumpFilename()).isEqualTo("generated-indexes2.cql"); assertThat(configuration.getDriverClassName()).isEqualTo("org.neo4j.ogm.drivers.http.driver.HttpDriver"); assertThat(configuration.getCredentials().credentials().toString()).isEqualTo("bmVvNGo6cGFzc3dvcmQ="); assertThat(configuration.getURI()).isEqualTo("http://localhost:7474"); assertThat(configuration.getConnectionPoolSize()).isEqualTo(100); assertThat(configuration.getEncryptionLevel()).isEqualTo("NONE"); assertThat(configuration.getTrustStrategy()).isEqualTo("TRUST_ON_FIRST_USE"); assertThat(configuration.getTrustCertFile()).isEqualTo("/tmp/cert"); }
@Test public void shouldPreserveUpdateConfiguration() { Configuration configuration = getBaseConfiguration().autoIndex("update").build(); assertThat(configuration.getAutoIndex()).isEqualTo(AutoIndexMode.UPDATE); }
@Test public void shouldPreserveDumpConfiguration() { Configuration configuration = getBaseConfiguration().autoIndex("dump").build(); assertThat(configuration.getAutoIndex()).isEqualTo(AutoIndexMode.DUMP); }
@Test public void shouldConfigureFromSimplePropertiesFile() { Configuration configuration = new Configuration.Builder( new ClasspathConfigurationSource("ogm-simple.properties")).build(); assertThat(configuration.getAutoIndex()).isEqualTo(AutoIndexMode.NONE); assertThat(configuration.getDriverClassName()).isEqualTo("org.neo4j.ogm.drivers.http.driver.HttpDriver"); assertThat(configuration.getCredentials().credentials().toString()).isEqualTo("bmVvNGo6cGFzc3dvcmQ="); assertThat(configuration.getURI()).isEqualTo("http://localhost:7474"); assertThat(configuration.getBasePackages()).isEqualTo(new String[] {"org.neo4j.ogm.domain.bike"}); assertThat(configuration.getUseNativeTypes()).isEqualTo(Boolean.TRUE); }
@Test public void shouldConfigureFromSpringBootPropertiesFile() { Configuration configuration = new Configuration.Builder( new ClasspathConfigurationSource("application.properties")).build(); assertThat(configuration.getAutoIndex()).isEqualTo(AutoIndexMode.NONE); assertThat(configuration.getDriverClassName()).isEqualTo("org.neo4j.ogm.drivers.http.driver.HttpDriver"); assertThat(configuration.getCredentials().credentials().toString()).isEqualTo("bmVvNGo6cGFzc3dvcmQ="); assertThat(configuration.getURI()).isEqualTo("http://localhost:7474"); }
@Test public void shouldPreserveAssertConfiguration() { Configuration configuration = getBaseConfiguration().autoIndex("assert").build(); assertThat(configuration.getAutoIndex()).isEqualTo(AutoIndexMode.ASSERT); }
@Test public void shouldPreserveValidateConfiguration() { Configuration configuration = getBaseConfiguration().autoIndex("validate").build(); assertThat(configuration.getAutoIndex()).isEqualTo(AutoIndexMode.VALIDATE); }
@Test public void shouldConfigureProgrammatically() { Configuration.Builder builder = new Configuration.Builder(); builder.autoIndex("assert"); builder.generatedIndexesOutputDir("dir"); builder.generatedIndexesOutputFilename("filename"); builder.credentials("fred", "flintstone"); builder.uri("http://localhost:8080"); builder.connectionPoolSize(200); builder.encryptionLevel("REQUIRED"); builder.trustStrategy("TRUST_SIGNED_CERTIFICATES"); builder.trustCertFile("/tmp/cert"); builder.connectionLivenessCheckTimeout(1000); Configuration configuration = builder.build(); assertThat(configuration.getAutoIndex()).isEqualTo(AutoIndexMode.ASSERT); assertThat(configuration.getDumpDir()).isEqualTo("dir"); assertThat(configuration.getDumpFilename()).isEqualTo("filename"); assertThat(configuration.getDriverClassName()).isEqualTo("org.neo4j.ogm.drivers.http.driver.HttpDriver"); assertThat(configuration.getCredentials().credentials().toString()).isEqualTo("ZnJlZDpmbGludHN0b25l"); assertThat(configuration.getURI()).isEqualTo("http://localhost:8080"); assertThat(configuration.getConnectionPoolSize()).isEqualTo(200); assertThat(configuration.getEncryptionLevel()).isEqualTo("REQUIRED"); assertThat(configuration.getTrustStrategy()).isEqualTo("TRUST_SIGNED_CERTIFICATES"); assertThat(configuration.getTrustCertFile()).isEqualTo("/tmp/cert"); assertThat(configuration.getConnectionLivenessCheckTimeout().intValue()).isEqualTo(1000); }