Skip to content

Commit

Permalink
Fix tests and add ServerConfigurationValidator with serverDefaults
Browse files Browse the repository at this point in the history
  • Loading branch information
spacecowboy committed Jan 5, 2017
1 parent c13b28f commit 2c390a3
Show file tree
Hide file tree
Showing 22 changed files with 581 additions and 485 deletions.
Expand Up @@ -139,8 +139,8 @@ public void execute( String[] args ) throws IncorrectUsage, CommandFailed
private Path toDatabaseDirectory( String databaseName )
{
//noinspection unchecked
return new ConfigLoader( asList( DatabaseManagementSystemSettings.class, GraphDatabaseSettings.class ) )
.loadOfflineConfig( Optional.of( homeDir.toFile() ),
return ConfigLoader
.loadConfigWithConnectorsDisabled( Optional.of( homeDir.toFile() ),
Optional.of( configDir.resolve( "neo4j.conf" ).toFile() ) )
.with( stringMap( DatabaseManagementSystemSettings.active_database.name(), databaseName ) )
.get( database_path ).toPath();
Expand Down
Expand Up @@ -240,15 +240,9 @@ private Map<String,String> loadAdditionalConfig( Optional<Path> additionalConfig
private static Config loadNeo4jConfig( Path homeDir, Path configDir, String databaseName,
Map<String,String> additionalConfig )
{
ConfigLoader configLoader = new ConfigLoader( settings() );
Config config = configLoader.loadOfflineConfig( Optional.of( homeDir.toFile() ),
Config config = ConfigLoader.loadConfigWithConnectorsDisabled( Optional.of( homeDir.toFile() ),
Optional.of( configDir.resolve( "neo4j.conf" ).toFile() ) );
additionalConfig.put( DatabaseManagementSystemSettings.active_database.name(), databaseName );
return config.with( additionalConfig );
}

private static List<Class<?>> settings()
{
return Arrays.asList( GraphDatabaseSettings.class, DatabaseManagementSystemSettings.class );
}
}
Expand Up @@ -122,8 +122,8 @@ public void execute( String[] args ) throws IncorrectUsage, CommandFailed
private Path toDatabaseDirectory( String databaseName )
{
//noinspection unchecked
return new ConfigLoader( asList( DatabaseManagementSystemSettings.class, GraphDatabaseSettings.class ) )
.loadOfflineConfig(
return ConfigLoader
.loadConfigWithConnectorsDisabled(
Optional.of( homeDir.toFile() ),
Optional.of( configDir.resolve( "neo4j.conf" ).toFile() ) )
.with( stringMap( DatabaseManagementSystemSettings.active_database.name(), databaseName ) )
Expand Down

This file was deleted.

Expand Up @@ -21,13 +21,17 @@

import java.io.File;
import java.io.IOException;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;

import org.neo4j.graphdb.factory.GraphDatabaseSettings;
import org.neo4j.helpers.collection.Pair;
import org.neo4j.kernel.configuration.BoltConnector;
import org.neo4j.kernel.configuration.Config;
import org.neo4j.kernel.configuration.Connector;
import org.neo4j.kernel.configuration.Settings;

public class ConfigLoader
Expand All @@ -48,20 +52,21 @@ public static Config loadConfig( Optional<File> homeDir, Optional<File> configFi
Pair<String,String>... configOverrides )
{
Map<String,String> overriddenSettings = calculateSettings( homeDir, configOverrides );
return Config.embeddedDefaults(configFile).with( overriddenSettings );
return Config.embeddedDefaults(configFile, overriddenSettings );
}

public static Config loadServerConfig( Optional<File> homeDir, Optional<File> configFile,
Pair<String,String>[] configOverrides )
{
Map<String,String> overriddenSettings = calculateSettings( homeDir, configOverrides );
return Config.serverDefaults(configFile).with( overriddenSettings );
return Config.serverDefaults( configFile, overriddenSettings, Collections.emptyList() );
}

public static Config loadOfflineConfig( Optional<File> homeDir, Optional<File> configFile )
public static Config loadConfigWithConnectorsDisabled( Optional<File> homeDir, Optional<File> configFile,
Pair<String,String>... configOverrides )
{
return overrideBoltSettings( loadConfig( homeDir, configFile,
Pair.of( GraphDatabaseSettings.auth_enabled.name(), Settings.FALSE ) ) );
Map<String,String> overriddenSettings = calculateSettings( homeDir, configOverrides );
return disableAllConnectors( Config.embeddedDefaults( configFile, overriddenSettings ) );
}

private static Map<String, String> calculateSettings( Optional<File> homeDir,
Expand All @@ -84,23 +89,11 @@ private static Map<String, String> toMap( Pair<String, String>[] configOverrides
return overrides;
}

private static Config overrideBoltSettings( Config config )
{
Map<String,String> overrides = new HashMap<>();
for ( GraphDatabaseSettings.BoltConnector bolt : GraphDatabaseSettings.boltConnectors( config ) )
{
overrides.put( bolt.enabled.name(), Settings.FALSE );
}
overrides.put( new GraphDatabaseSettings.BoltConnector().enabled.name(), Settings.FALSE );
return config.with( overrides );
}

/*
* TODO: This means docs will say defaults are something other than what they are in the server. Better
* make embedded the special case and set the defaults to be what the server will have.
*/
private static void overrideEmbeddedDefaults( Map<String, String> config )
private static Config disableAllConnectors( Config config )
{
config.putIfAbsent( GraphDatabaseSettings.auth_enabled.name(), "true" );
return config.with(
config.allConnectorIdentifiers().stream()
.collect( Collectors.toMap( id -> new Connector( id, "" ).enabled.name(),
id -> Settings.FALSE ) ) );
}
}
Expand Up @@ -35,7 +35,7 @@ public class DatabaseManagementSystemSettingsTest
@Test
public void shouldPutDatabaseDirectoriesIntoDataDatabases()
{
Config config = new Config( stringMap( DatabaseManagementSystemSettings.data_directory.name(), "the-data-directory" ) );
Config config = Config.embeddedDefaults( stringMap( DatabaseManagementSystemSettings.data_directory.name(), "the-data-directory" ) );
assertThat( config.get( DatabaseManagementSystemSettings.database_path ),
equalTo( new File( "the-data-directory/databases/graph.db" ) ) );
}
Expand Down

0 comments on commit 2c390a3

Please sign in to comment.