Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 30 additions & 4 deletions driver/src/main/java/org/neo4j/driver/v1/Config.java
Original file line number Diff line number Diff line change
Expand Up @@ -242,10 +242,23 @@ public ServerAddressResolver resolver()
}

/**
* Return a {@link ConfigBuilder} instance
* @return a {@link ConfigBuilder} instance
* Start building a {@link Config} object using a newly created builder.
* <p>
* <b>Please use {@link #builder()} method instead.</b>
*
* @return a new {@link ConfigBuilder} instance.
*/
public static ConfigBuilder build()
{
return builder();
}

/**
* Start building a {@link Config} object using a newly created builder.
*
* @return a new {@link ConfigBuilder} instance.
*/
public static ConfigBuilder builder()
{
return new ConfigBuilder();
}
Expand All @@ -255,7 +268,7 @@ public static ConfigBuilder build()
*/
public static Config defaultConfig()
{
return Config.build().toConfig();
return Config.builder().build();
}

RoutingSettings routingSettings()
Expand Down Expand Up @@ -748,9 +761,22 @@ public ConfigBuilder withResolver( ServerAddressResolver resolver )

/**
* Create a config instance from this builder.
* @return a {@link Config} instance
* <p>
* <b>Please use {@link #build()} method instead.</b>
*
* @return a new {@link Config} instance.
*/
public Config toConfig()
{
return build();
}

/**
* Create a config instance from this builder.
*
* @return a new {@link Config} instance.
*/
public Config build()
{
return new Config( this );
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,9 +115,10 @@ void shouldLogConnectionIdInDebugMode() throws Exception
Logger logger = mock( Logger.class );
when( logger.isDebugEnabled() ).thenReturn( true );

Config config = Config.build()
Config config = Config.builder()
.withLogging( ignore -> logger )
.withoutEncryption().toConfig();
.withoutEncryption()
.build();

try ( Driver driver = GraphDatabase.driver( "bolt://localhost:9001", config );
Session session = driver.session() )
Expand Down Expand Up @@ -149,7 +150,7 @@ void shouldCloseChannelWhenResetFails() throws Exception
try
{
URI uri = URI.create( "bolt://localhost:9001" );
Config config = Config.build().withLogging( DEV_NULL_LOGGING ).withoutEncryption().toConfig();
Config config = Config.builder().withLogging( DEV_NULL_LOGGING ).withoutEncryption().build();
ChannelTrackingDriverFactory driverFactory = new ChannelTrackingDriverFactory( 1, Clock.SYSTEM );

try ( Driver driver = driverFactory.newInstance( uri, AuthTokens.none(), RoutingSettings.DEFAULT, RetrySettings.DEFAULT, config ) )
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ void usesStandardSessionFactoryWhenNothingConfigured( String uri )
@MethodSource( "testUris" )
void usesLeakLoggingSessionFactoryWhenConfigured( String uri )
{
Config config = Config.build().withLeakedSessionsLogging().toConfig();
Config config = Config.builder().withLeakedSessionsLogging().build();
SessionFactoryCapturingDriverFactory factory = new SessionFactoryCapturingDriverFactory();

createDriver( uri, factory, config );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,10 @@

class RoutingDriverBoltKitTest
{
private static final Config config = Config.build()
private static final Config config = Config.builder()
.withoutEncryption()
.withLogging( none() )
.toConfig();
.build();

@Test
void shouldHandleAcquireReadSession() throws IOException, InterruptedException, StubServer.ForceKilled
Expand Down Expand Up @@ -984,11 +984,11 @@ void shouldFailInitialDiscoveryWhenConfiguredResolverThrows()
ServerAddressResolver resolver = mock( ServerAddressResolver.class );
when( resolver.resolve( any( ServerAddress.class ) ) ).thenThrow( new RuntimeException( "Resolution failure!" ) );

Config config = Config.build()
Config config = Config.builder()
.withLogging( none() )
.withoutEncryption()
.withResolver( resolver )
.toConfig();
.build();

RuntimeException error = assertThrows( RuntimeException.class, () -> GraphDatabase.driver( "bolt+routing://my.server.com:9001", config ) );
assertEquals( "Resolution failure!", error.getMessage() );
Expand Down Expand Up @@ -1021,11 +1021,11 @@ void shouldUseResolverDuringRediscoveryWhenExistingRoutersFail() throws Exceptio
throw new AssertionError();
};

Config config = Config.build()
Config config = Config.builder()
.withLogging( none() )
.withoutEncryption()
.withResolver( resolver )
.toConfig();
.build();

try ( Driver driver = GraphDatabase.driver( "bolt+routing://127.0.0.1:9001", config ) )
{
Expand Down Expand Up @@ -1056,10 +1056,10 @@ void useSessionAfterDriverIsClosed() throws Exception
StubServer router = StubServer.start( "acquire_endpoints.script", 9001 );
StubServer readServer = StubServer.start( "read_server.script", 9005 );

Config config = Config.build()
Config config = Config.builder()
.withoutEncryption()
.withLogging( none() )
.toConfig();
.build();

try ( Driver driver = GraphDatabase.driver( "bolt+routing://127.0.0.1:9001", config ) )
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ class SessionFactoryImplTest
@Test
void createsNetworkSessions()
{
Config config = Config.build().withLogging( DEV_NULL_LOGGING ).toConfig();
Config config = Config.builder().withLogging( DEV_NULL_LOGGING ).build();
SessionFactory factory = newSessionFactory( config );

Session readSession = factory.newInstance( AccessMode.READ, null );
Expand All @@ -49,7 +49,7 @@ void createsNetworkSessions()
@Test
void createsLeakLoggingNetworkSessions()
{
Config config = Config.build().withLogging( DEV_NULL_LOGGING ).withLeakedSessionsLogging().toConfig();
Config config = Config.builder().withLogging( DEV_NULL_LOGGING ).withLeakedSessionsLogging().build();
SessionFactory factory = newSessionFactory( config );

Session readSession = factory.newInstance( AccessMode.READ, null );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,10 @@

class TrustedServerProductTest
{
private static final Config config = Config.build()
private static final Config config = Config.builder()
.withoutEncryption()
.withLogging( none() )
.toConfig();
.build();

@Test
void shouldRejectConnectionsToNonNeo4jServers() throws Exception
Expand Down
50 changes: 25 additions & 25 deletions driver/src/test/java/org/neo4j/driver/v1/ConfigTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ void shouldChangeToNewKnownCerts()
{
// Given
File knownCerts = new File( "new_known_hosts" );
Config config = Config.build().withTrustStrategy( Config.TrustStrategy.trustOnFirstUse( knownCerts ) ).toConfig();
Config config = Config.builder().withTrustStrategy( Config.TrustStrategy.trustOnFirstUse( knownCerts ) ).build();

// When
Config.TrustStrategy authConfig = config.trustStrategy();
Expand All @@ -68,7 +68,7 @@ void shouldChangeToTrustedCert()
{
// Given
File trustedCert = new File( "trusted_cert" );
Config config = Config.build().withTrustStrategy( Config.TrustStrategy.trustCustomCertificateSignedBy( trustedCert ) ).toConfig();
Config config = Config.builder().withTrustStrategy( Config.TrustStrategy.trustCustomCertificateSignedBy( trustedCert ) ).build();

// When
Config.TrustStrategy authConfig = config.trustStrategy();
Expand All @@ -81,23 +81,23 @@ void shouldChangeToTrustedCert()
@Test
void shouldSupportLivenessCheckTimeoutSetting() throws Throwable
{
Config config = Config.build().withConnectionLivenessCheckTimeout( 42, TimeUnit.SECONDS ).toConfig();
Config config = Config.builder().withConnectionLivenessCheckTimeout( 42, TimeUnit.SECONDS ).build();

assertEquals( TimeUnit.SECONDS.toMillis( 42 ), config.idleTimeBeforeConnectionTest() );
}

@Test
void shouldAllowZeroConnectionLivenessCheckTimeout() throws Throwable
{
Config config = Config.build().withConnectionLivenessCheckTimeout( 0, TimeUnit.SECONDS ).toConfig();
Config config = Config.builder().withConnectionLivenessCheckTimeout( 0, TimeUnit.SECONDS ).build();

assertEquals( 0, config.idleTimeBeforeConnectionTest() );
}

@Test
void shouldAllowNegativeConnectionLivenessCheckTimeout() throws Throwable
{
Config config = Config.build().withConnectionLivenessCheckTimeout( -42, TimeUnit.SECONDS ).toConfig();
Config config = Config.builder().withConnectionLivenessCheckTimeout( -42, TimeUnit.SECONDS ).build();

assertEquals( TimeUnit.SECONDS.toMillis( -42 ), config.idleTimeBeforeConnectionTest() );
}
Expand All @@ -111,23 +111,23 @@ void shouldHaveCorrectMaxConnectionLifetime()
@Test
void shouldSupportMaxConnectionLifetimeSetting() throws Throwable
{
Config config = Config.build().withMaxConnectionLifetime( 42, TimeUnit.SECONDS ).toConfig();
Config config = Config.builder().withMaxConnectionLifetime( 42, TimeUnit.SECONDS ).build();

assertEquals( TimeUnit.SECONDS.toMillis( 42 ), config.maxConnectionLifetimeMillis() );
}

@Test
void shouldAllowZeroConnectionMaxConnectionLifetime() throws Throwable
{
Config config = Config.build().withMaxConnectionLifetime( 0, TimeUnit.SECONDS ).toConfig();
Config config = Config.builder().withMaxConnectionLifetime( 0, TimeUnit.SECONDS ).build();

assertEquals( 0, config.maxConnectionLifetimeMillis() );
}

@Test
void shouldAllowNegativeConnectionMaxConnectionLifetime() throws Throwable
{
Config config = Config.build().withMaxConnectionLifetime( -42, TimeUnit.SECONDS ).toConfig();
Config config = Config.builder().withMaxConnectionLifetime( -42, TimeUnit.SECONDS ).build();

assertEquals( TimeUnit.SECONDS.toMillis( -42 ), config.maxConnectionLifetimeMillis() );
}
Expand All @@ -136,10 +136,10 @@ void shouldAllowNegativeConnectionMaxConnectionLifetime() throws Throwable
void shouldTurnOnLeakedSessionsLogging()
{
// leaked sessions logging is turned off by default
assertFalse( Config.build().toConfig().logLeakedSessions() );
assertFalse( Config.builder().build().logLeakedSessions() );

// it can be turned on using config
assertTrue( Config.build().withLeakedSessionsLogging().toConfig().logLeakedSessions() );
assertTrue( Config.builder().withLeakedSessionsLogging().build().logLeakedSessions() );
}

@Test
Expand All @@ -152,53 +152,53 @@ void shouldHaveDefaultConnectionTimeout()
@Test
void shouldRespectConfiguredConnectionTimeout()
{
Config config = Config.build().withConnectionTimeout( 42, TimeUnit.HOURS ).toConfig();
Config config = Config.builder().withConnectionTimeout( 42, TimeUnit.HOURS ).build();
assertEquals( TimeUnit.HOURS.toMillis( 42 ), config.connectionTimeoutMillis() );
}

@Test
void shouldAllowConnectionTimeoutOfZero()
{
Config config = Config.build().withConnectionTimeout( 0, TimeUnit.SECONDS ).toConfig();
Config config = Config.builder().withConnectionTimeout( 0, TimeUnit.SECONDS ).build();
assertEquals( 0, config.connectionTimeoutMillis() );
}

@Test
void shouldThrowForNegativeConnectionTimeout()
{
Config.ConfigBuilder builder = Config.build();
Config.ConfigBuilder builder = Config.builder();

assertThrows( IllegalArgumentException.class, () -> builder.withConnectionTimeout( -42, TimeUnit.SECONDS ) );
}

@Test
void shouldThrowForTooLargeConnectionTimeout()
{
Config.ConfigBuilder builder = Config.build();
Config.ConfigBuilder builder = Config.builder();

assertThrows( IllegalArgumentException.class, () -> builder.withConnectionTimeout( Long.MAX_VALUE - 42, TimeUnit.SECONDS ) );
}

@Test
void shouldNotAllowNegativeMaxRetryTimeMs()
{
Config.ConfigBuilder builder = Config.build();
Config.ConfigBuilder builder = Config.builder();

assertThrows( IllegalArgumentException.class, () -> builder.withMaxTransactionRetryTime( -42, TimeUnit.SECONDS ) );
}

@Test
void shouldAllowZeroMaxRetryTimeMs()
{
Config config = Config.build().withMaxTransactionRetryTime( 0, TimeUnit.SECONDS ).toConfig();
Config config = Config.builder().withMaxTransactionRetryTime( 0, TimeUnit.SECONDS ).build();

assertEquals( 0, config.retrySettings().maxRetryTimeMs() );
}

@Test
void shouldAllowPositiveRetryAttempts()
{
Config config = Config.build().withMaxTransactionRetryTime( 42, TimeUnit.SECONDS ).toConfig();
Config config = Config.builder().withMaxTransactionRetryTime( 42, TimeUnit.SECONDS ).build();

assertEquals( TimeUnit.SECONDS.toMillis( 42 ), config.retrySettings().maxRetryTimeMs() );
}
Expand All @@ -212,23 +212,23 @@ void shouldHaveCorrectDefaultMaxConnectionPoolSize()
@Test
void shouldAllowPositiveMaxConnectionPoolSize()
{
Config config = Config.build().withMaxConnectionPoolSize( 42 ).toConfig();
Config config = Config.builder().withMaxConnectionPoolSize( 42 ).build();

assertEquals( 42, config.maxConnectionPoolSize() );
}

@Test
void shouldAllowNegativeMaxConnectionPoolSize()
{
Config config = Config.build().withMaxConnectionPoolSize( -42 ).toConfig();
Config config = Config.builder().withMaxConnectionPoolSize( -42 ).build();

assertEquals( Integer.MAX_VALUE, config.maxConnectionPoolSize() );
}

@Test
void shouldDisallowZeroMaxConnectionPoolSize()
{
IllegalArgumentException e = assertThrows( IllegalArgumentException.class, () -> Config.build().withMaxConnectionPoolSize( 0 ).toConfig() );
IllegalArgumentException e = assertThrows( IllegalArgumentException.class, () -> Config.builder().withMaxConnectionPoolSize( 0 ).build() );
assertEquals( "Zero value is not supported", e.getMessage() );
}

Expand All @@ -241,23 +241,23 @@ void shouldHaveCorrectDefaultConnectionAcquisitionTimeout()
@Test
void shouldAllowPositiveConnectionAcquisitionTimeout()
{
Config config = Config.build().withConnectionAcquisitionTimeout( 42, TimeUnit.SECONDS ).toConfig();
Config config = Config.builder().withConnectionAcquisitionTimeout( 42, TimeUnit.SECONDS ).build();

assertEquals( TimeUnit.SECONDS.toMillis( 42 ), config.connectionAcquisitionTimeoutMillis() );
}

@Test
void shouldAllowNegativeConnectionAcquisitionTimeout()
{
Config config = Config.build().withConnectionAcquisitionTimeout( -42, TimeUnit.HOURS ).toConfig();
Config config = Config.builder().withConnectionAcquisitionTimeout( -42, TimeUnit.HOURS ).build();

assertEquals( -1, config.connectionAcquisitionTimeoutMillis() );
}

@Test
void shouldAllowConnectionAcquisitionTimeoutOfZero()
{
Config config = Config.build().withConnectionAcquisitionTimeout( 0, TimeUnit.DAYS ).toConfig();
Config config = Config.builder().withConnectionAcquisitionTimeout( 0, TimeUnit.DAYS ).build();

assertEquals( 0, config.connectionAcquisitionTimeoutMillis() );
}
Expand All @@ -279,14 +279,14 @@ void shouldEnableAndDisableHostnameVerificationOnTrustStrategy()
void shouldAllowToConfigureResolver()
{
ServerAddressResolver resolver = mock( ServerAddressResolver.class );
Config config = Config.build().withResolver( resolver ).toConfig();
Config config = Config.builder().withResolver( resolver ).build();

assertEquals( resolver, config.resolver() );
}

@Test
void shouldNotAllowNullResolver()
{
assertThrows( NullPointerException.class, () -> Config.build().withResolver( null ) );
assertThrows( NullPointerException.class, () -> Config.builder().withResolver( null ) );
}
}
Loading