From 08bab6b8304e7e34f0626f482087676d4a005754 Mon Sep 17 00:00:00 2001 From: "Steven R. Baker" Date: Thu, 26 May 2016 16:11:10 +0200 Subject: [PATCH] Remove unneeded loadConfig methods, and default home to working dir. --- .../org/neo4j/server/ServerBootstrapper.java | 3 +- .../server/configuration/ConfigLoader.java | 28 +++++---------- .../configuration/ConfigLoaderTest.java | 35 +++++++++++++------ .../enterprise/jmx/ServerManagementTest.java | 4 ++- .../desktop/runtime/DesktopConfigurator.java | 2 +- 5 files changed, 40 insertions(+), 32 deletions(-) diff --git a/community/server/src/main/java/org/neo4j/server/ServerBootstrapper.java b/community/server/src/main/java/org/neo4j/server/ServerBootstrapper.java index 274ef448494f4..65a3d5b5ac5b8 100644 --- a/community/server/src/main/java/org/neo4j/server/ServerBootstrapper.java +++ b/community/server/src/main/java/org/neo4j/server/ServerBootstrapper.java @@ -159,7 +159,8 @@ private static LogProvider setupLogging() private Config createConfig( Log log, File homeDir, Optional file, Pair[] configOverrides ) throws IOException { - return new ConfigLoader( this::settingsClasses ).loadConfig( homeDir, file, log, configOverrides ); + return new ConfigLoader( this::settingsClasses ).loadConfig( Optional.of( homeDir ), file, log, + configOverrides ); } private void addShutdownHook() diff --git a/community/server/src/main/java/org/neo4j/server/configuration/ConfigLoader.java b/community/server/src/main/java/org/neo4j/server/configuration/ConfigLoader.java index abee3d826d17c..3818c698b595c 100644 --- a/community/server/src/main/java/org/neo4j/server/configuration/ConfigLoader.java +++ b/community/server/src/main/java/org/neo4j/server/configuration/ConfigLoader.java @@ -25,7 +25,6 @@ import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.function.Consumer; import org.neo4j.graphdb.factory.GraphDatabaseSettings; import org.neo4j.helpers.collection.MapUtil; @@ -55,44 +54,35 @@ public ConfigLoader( List> settingsClasses ) public Config loadConfig( Optional configFile, Log log, Pair... configOverrides ) { - return loadConfig( Optional.empty(), configFile, log, settings -> {}, configOverrides ); + return loadConfig( Optional.empty(), configFile, log, configOverrides ); } - public Config loadConfig( File homeDir, Optional configFile, Log log, - Pair... configOverrides ) - { - return loadConfig( Optional.ofNullable( homeDir ), configFile, log, settings -> {}, configOverrides ); - } - - public Config loadConfig( Optional homeDir, - Optional configFile, - Log log, - Consumer> customizer, - Pair... configOverrides ) + public Config loadConfig( Optional homeDir, Optional configFile, + Log log, Pair... configOverrides ) { if ( log == null ) { throw new IllegalArgumentException( "log cannot be null" ); } - Map settings = calculateSettings( homeDir, configFile, log, configOverrides, customizer ); + Map settings = calculateSettings( homeDir, configFile, log, configOverrides ); Config config = new Config( settings, settingsClasses.calculate( settings ) ); config.setLogger( log ); return config; } - private Map calculateSettings( Optional homeDir, Optional config, Log log, - Pair[] configOverrides, - Consumer> customizer ) + Pair[] configOverrides ) { HashMap settings = new HashMap<>(); config.ifPresent( ( c ) -> settings.putAll( loadFromFile( log, c ) ) ); settings.putAll( toMap( configOverrides ) ); overrideEmbeddedDefaults( settings ); - homeDir.ifPresent( ( h ) -> settings.put( GraphDatabaseSettings.neo4j_home.name(), h.getAbsolutePath() ) ); - customizer.accept( settings ); + homeDir.map( ( h ) -> + settings.put( GraphDatabaseSettings.neo4j_home.name(), h.getAbsolutePath() ) + ).orElse( + settings.put( GraphDatabaseSettings.neo4j_home.name(), System.getProperty( "user.dir" ) ) ); return settings; } diff --git a/community/server/src/test/java/org/neo4j/server/configuration/ConfigLoaderTest.java b/community/server/src/test/java/org/neo4j/server/configuration/ConfigLoaderTest.java index afd95e16bea78..60ab2d8c267bc 100644 --- a/community/server/src/test/java/org/neo4j/server/configuration/ConfigLoaderTest.java +++ b/community/server/src/test/java/org/neo4j/server/configuration/ConfigLoaderTest.java @@ -66,7 +66,7 @@ public void shouldProvideAConfiguration() throws IOException .build(); // when - Config config = configLoader.loadConfig( folder.getRoot(), configFile, log ); + Config config = configLoader.loadConfig( Optional.of( folder.getRoot() ), configFile, log ); // then assertNotNull( config ); @@ -81,7 +81,7 @@ public void shouldUseSpecifiedConfigFile() throws Exception .build(); // when - Config testConf = configLoader.loadConfig( folder.getRoot(), configFile, log ); + Config testConf = configLoader.loadConfig( Optional.of( folder.getRoot() ), configFile, log ); // then final String EXPECTED_VALUE = "bar"; @@ -96,12 +96,27 @@ public void shouldUseSpecifiedHomeDir() throws Exception .build(); // when - Config testConf = configLoader.loadConfig( folder.getRoot(), configFile, log ); + Config testConf = configLoader.loadConfig( Optional.of( folder.getRoot() ), configFile, log ); // then assertEquals( folder.getRoot(), testConf.get( GraphDatabaseSettings.neo4j_home ) ); } + @Test + public void shouldUseWorkingDirForHomeDirIfUnspecified() throws Exception + { + // given + Optional configFile = ConfigFileBuilder.builder( folder.getRoot() ) + .build(); + + // when + Config testConf = configLoader.loadConfig( Optional.empty(), configFile, log ); + + // then + assertEquals( new File( System.getProperty("user.dir") ), + testConf.get( GraphDatabaseSettings.neo4j_home ) ); + } + @Test public void shouldAcceptDuplicateKeysWithSameValue() throws IOException { @@ -112,7 +127,7 @@ public void shouldAcceptDuplicateKeysWithSameValue() throws IOException .build(); // when - Config testConf = configLoader.loadConfig( folder.getRoot(), configFile, log ); + Config testConf = configLoader.loadConfig( Optional.of( folder.getRoot() ), configFile, log ); // then assertNotNull( testConf ); @@ -137,7 +152,7 @@ public void shouldFindThirdPartyJaxRsPackages() throws IOException } // when - Config config = configLoader.loadConfig( folder.getRoot(), Optional.of( file ), log ); + Config config = configLoader.loadConfig( Optional.of( folder.getRoot() ), Optional.of( file ), log ); // then List thirdpartyJaxRsPackages = config.get( ServerSettings.third_party_packages ); @@ -156,7 +171,7 @@ public void shouldRetainRegistrationOrderOfThirdPartyJaxRsPackages() throws IOEx .build(); // when - Config config = configLoader.loadConfig( folder.getRoot(), configFile, log ); + Config config = configLoader.loadConfig( Optional.of( folder.getRoot() ), configFile, log ); // then List thirdpartyJaxRsPackages = config.get( ServerSettings.third_party_packages ); @@ -175,7 +190,7 @@ public void shouldWorkFineWhenSpecifiedConfigFileDoesNotExist() Optional nonExistentConfigFile = Optional.of( new File( "/tmp/" + System.currentTimeMillis() ) ); // When - Config config = configLoader.loadConfig( folder.getRoot(), nonExistentConfigFile, log ); + Config config = configLoader.loadConfig( Optional.of( folder.getRoot() ), nonExistentConfigFile, log ); // Then assertNotNull( config ); @@ -188,7 +203,7 @@ public void shouldDefaultToCorrectValueForAuthStoreLocation() throws IOException .builder( folder.getRoot() ) .withoutSetting( DatabaseManagementSystemSettings.data_directory ) .build(); - Config config = configLoader.loadConfig( folder.getRoot(), configFile, log ); + Config config = configLoader.loadConfig( Optional.of( folder.getRoot() ), configFile, log ); assertThat( config.get( GraphDatabaseSettings.auth_store ), is( new File( folder.getRoot(), "data/dbms/auth" ).getAbsoluteFile() ) ); @@ -200,7 +215,7 @@ public void shouldSetAValueForAuthStoreLocation() throws IOException Optional configFile = ConfigFileBuilder.builder( folder.getRoot() ) .withSetting( DatabaseManagementSystemSettings.data_directory, "the-data-dir" ) .build(); - Config config = configLoader.loadConfig( folder.getRoot(), configFile, log ); + Config config = configLoader.loadConfig( Optional.of( folder.getRoot() ), configFile, log ); assertThat( config.get( GraphDatabaseSettings.auth_store ), is( new File( folder.getRoot(), "the-data-dir/dbms/auth" ).getAbsoluteFile() ) ); @@ -213,7 +228,7 @@ public void shouldNotOverwriteAuthStoreLocationIfProvided() throws IOException .withSetting( DatabaseManagementSystemSettings.data_directory, "the-data-dir" ) .withSetting( GraphDatabaseSettings.auth_store, "foo/bar/auth" ) .build(); - Config config = configLoader.loadConfig( folder.getRoot(), configFile, log ); + Config config = configLoader.loadConfig( Optional.of( folder.getRoot() ), configFile, log ); assertThat( config.get( GraphDatabaseSettings.auth_store ), is( new File( folder.getRoot(), "foo/bar/auth" ).getAbsoluteFile() ) ); diff --git a/enterprise/server-enterprise/src/test/java/org/neo4j/server/enterprise/jmx/ServerManagementTest.java b/enterprise/server-enterprise/src/test/java/org/neo4j/server/enterprise/jmx/ServerManagementTest.java index 528ee455c8056..7f30ba767acd1 100644 --- a/enterprise/server-enterprise/src/test/java/org/neo4j/server/enterprise/jmx/ServerManagementTest.java +++ b/enterprise/server-enterprise/src/test/java/org/neo4j/server/enterprise/jmx/ServerManagementTest.java @@ -23,6 +23,8 @@ import org.junit.Test; import org.junit.rules.RuleChain; +import java.util.Optional; + import org.neo4j.dbms.DatabaseManagementSystemSettings; import org.neo4j.graphdb.factory.GraphDatabaseSettings; import org.neo4j.kernel.GraphDatabaseDependencies; @@ -61,7 +63,7 @@ public void shouldBeAbleToRestartServer() throws Exception String dataDirectory2 = baseDir.directory( "data2" ).getAbsolutePath(); Config config = new ConfigLoader( CommunityBootstrapper.settingsClasses ).loadConfig( - baseDir.directory(), + Optional.of( baseDir.directory() ), EnterpriseServerBuilder .server() .withDefaultDatabaseTuning() diff --git a/packaging/neo4j-desktop/src/main/java/org/neo4j/desktop/runtime/DesktopConfigurator.java b/packaging/neo4j-desktop/src/main/java/org/neo4j/desktop/runtime/DesktopConfigurator.java index 68dd04469cfb5..cc90981d312dd 100644 --- a/packaging/neo4j-desktop/src/main/java/org/neo4j/desktop/runtime/DesktopConfigurator.java +++ b/packaging/neo4j-desktop/src/main/java/org/neo4j/desktop/runtime/DesktopConfigurator.java @@ -54,7 +54,7 @@ public DesktopConfigurator( Installation installation, Parameters parameters, Fi public void refresh() { config = new ConfigLoader( CommunityBootstrapper.settingsClasses).loadConfig( - dbDir.getAbsoluteFile(), + Optional.of( dbDir.getAbsoluteFile() ), Optional.of( getConfigurationsFile() ), FormattedLog.toOutputStream( System.out ), pair( DatabaseManagementSystemSettings.database_path.name(), dbDir.getAbsolutePath() ) );