Skip to content

Commit

Permalink
Remove unneeded loadConfig methods, and default home to working dir.
Browse files Browse the repository at this point in the history
  • Loading branch information
srbaker committed May 26, 2016
1 parent 31ed466 commit 08bab6b
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 32 deletions.
Expand Up @@ -159,7 +159,8 @@ private static LogProvider setupLogging()
private Config createConfig( Log log, File homeDir, Optional<File> file, Pair<String, String>[] 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()
Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -55,44 +54,35 @@ public ConfigLoader( List<Class<?>> settingsClasses )

public Config loadConfig( Optional<File> configFile, Log log, Pair<String, String>... configOverrides )
{
return loadConfig( Optional.empty(), configFile, log, settings -> {}, configOverrides );
return loadConfig( Optional.empty(), configFile, log, configOverrides );
}

public Config loadConfig( File homeDir, Optional<File> configFile, Log log,
Pair<String, String>... configOverrides )
{
return loadConfig( Optional.ofNullable( homeDir ), configFile, log, settings -> {}, configOverrides );
}

public Config loadConfig( Optional<File> homeDir,
Optional<File> configFile,
Log log,
Consumer<Map<String, String>> customizer,
Pair<String, String>... configOverrides )
public Config loadConfig( Optional<File> homeDir, Optional<File> configFile,
Log log, Pair<String, String>... configOverrides )
{
if ( log == null )
{
throw new IllegalArgumentException( "log cannot be null" );
}

Map<String, String> settings = calculateSettings( homeDir, configFile, log, configOverrides, customizer );
Map<String, String> settings = calculateSettings( homeDir, configFile, log, configOverrides );
Config config = new Config( settings, settingsClasses.calculate( settings ) );
config.setLogger( log );
return config;
}


private Map<String, String> calculateSettings( Optional<File> homeDir, Optional<File> config, Log log,
Pair<String, String>[] configOverrides,
Consumer<Map<String, String>> customizer )
Pair<String, String>[] configOverrides )
{
HashMap<String, String> 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;
}

Expand Down
Expand Up @@ -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 );
Expand All @@ -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";
Expand All @@ -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<File> 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
{
Expand All @@ -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 );
Expand All @@ -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<ThirdPartyJaxRsPackage> thirdpartyJaxRsPackages = config.get( ServerSettings.third_party_packages );
Expand All @@ -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<ThirdPartyJaxRsPackage> thirdpartyJaxRsPackages = config.get( ServerSettings.third_party_packages );
Expand All @@ -175,7 +190,7 @@ public void shouldWorkFineWhenSpecifiedConfigFileDoesNotExist()
Optional<File> 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 );
Expand All @@ -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() ) );
Expand All @@ -200,7 +215,7 @@ public void shouldSetAValueForAuthStoreLocation() throws IOException
Optional<File> 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() ) );
Expand All @@ -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() ) );
Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -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()
Expand Down
Expand Up @@ -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() ) );
Expand Down

0 comments on commit 08bab6b

Please sign in to comment.