Skip to content

Commit 33e49ed

Browse files
author
Zhen Li
committed
Ensured the driver config is used consistently inside cluster stress tests.
Simplified the driver creation code used in tests to direct specify the event loop thread via driver config.
1 parent ba25055 commit 33e49ed

File tree

8 files changed

+19
-68
lines changed

8 files changed

+19
-68
lines changed

driver/src/main/java/org/neo4j/driver/GraphDatabase.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222

2323
import org.neo4j.driver.exceptions.ServiceUnavailableException;
2424
import org.neo4j.driver.internal.DriverFactory;
25-
import org.neo4j.driver.internal.Scheme;
2625
import org.neo4j.driver.internal.SecuritySettings;
2726
import org.neo4j.driver.internal.cluster.RoutingSettings;
2827
import org.neo4j.driver.internal.retry.RetrySettings;
@@ -136,7 +135,6 @@ public static Driver driver( URI uri, AuthToken authToken, Config config )
136135
RoutingSettings routingSettings = config.routingSettings();
137136
RetrySettings retrySettings = config.retrySettings();
138137
SecuritySettings securitySettings = config.securitySettings();
139-
Scheme.validateScheme( uri.getScheme() );
140138
SecurityPlan securityPlan = securitySettings.createSecurityPlan( uri.getScheme() );
141139
return new DriverFactory().newInstance( uri, authToken, routingSettings, retrySettings, config, securityPlan );
142140
}

driver/src/main/java/org/neo4j/driver/internal/DriverFactory.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
import org.neo4j.driver.Driver;
3232
import org.neo4j.driver.Logger;
3333
import org.neo4j.driver.Logging;
34-
import org.neo4j.driver.exceptions.ClientException;
3534
import org.neo4j.driver.internal.async.connection.BootstrapFactory;
3635
import org.neo4j.driver.internal.async.connection.ChannelConnector;
3736
import org.neo4j.driver.internal.async.connection.ChannelConnectorImpl;
@@ -55,15 +54,13 @@
5554
import org.neo4j.driver.internal.util.Futures;
5655
import org.neo4j.driver.net.ServerAddressResolver;
5756

58-
import static java.lang.String.format;
5957
import static org.neo4j.driver.internal.Scheme.isRoutingScheme;
6058
import static org.neo4j.driver.internal.cluster.IdentityResolver.IDENTITY_RESOLVER;
6159
import static org.neo4j.driver.internal.metrics.MetricsProvider.METRICS_DISABLED_PROVIDER;
6260
import static org.neo4j.driver.internal.util.ErrorUtil.addSuppressed;
6361

6462
public class DriverFactory
6563
{
66-
6764
public final Driver newInstance( URI uri, AuthToken authToken, RoutingSettings routingSettings,
6865
RetrySettings retrySettings, Config config, SecurityPlan securityPlan )
6966
{

driver/src/main/java/org/neo4j/driver/internal/SecuritySettings.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ private boolean isCustomized()
6161

6262
public SecurityPlan createSecurityPlan( String uriScheme )
6363
{
64+
Scheme.validateScheme( uriScheme );
6465
try
6566
{
6667
if ( isSecurityScheme( uriScheme ) )
@@ -160,4 +161,4 @@ public SecuritySettings build()
160161
return isCustomized ? new SecuritySettings( encrypted, trustStrategy ) : SecuritySettings.DEFAULT;
161162
}
162163
}
163-
}
164+
}

driver/src/test/java/org/neo4j/driver/integration/ConnectionPoolIT.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,18 +28,17 @@
2828
import java.util.concurrent.CountDownLatch;
2929
import java.util.concurrent.TimeUnit;
3030

31-
import org.neo4j.driver.internal.cluster.RoutingSettings;
32-
import org.neo4j.driver.internal.security.SecurityPlanImpl;
33-
import org.neo4j.driver.internal.util.io.ChannelTrackingDriverFactory;
34-
import org.neo4j.driver.internal.util.DriverFactoryWithOneEventLoopThread;
35-
import org.neo4j.driver.internal.util.FakeClock;
3631
import org.neo4j.driver.Config;
3732
import org.neo4j.driver.Driver;
3833
import org.neo4j.driver.GraphDatabase;
39-
import org.neo4j.driver.Session;
4034
import org.neo4j.driver.Result;
35+
import org.neo4j.driver.Session;
4136
import org.neo4j.driver.Transaction;
4237
import org.neo4j.driver.exceptions.ClientException;
38+
import org.neo4j.driver.internal.cluster.RoutingSettings;
39+
import org.neo4j.driver.internal.security.SecurityPlanImpl;
40+
import org.neo4j.driver.internal.util.FakeClock;
41+
import org.neo4j.driver.internal.util.io.ChannelTrackingDriverFactory;
4342
import org.neo4j.driver.util.DatabaseExtension;
4443
import org.neo4j.driver.util.ParallelizableIT;
4544

@@ -142,9 +141,10 @@ void shouldRespectMaxConnectionPoolSize()
142141
Config config = Config.builder()
143142
.withMaxConnectionPoolSize( maxPoolSize )
144143
.withConnectionAcquisitionTimeout( 542, TimeUnit.MILLISECONDS )
144+
.withEventLoopThreads( 1 )
145145
.build();
146146

147-
driver = new DriverFactoryWithOneEventLoopThread().newInstance( neo4j.uri(), neo4j.authToken(), config );
147+
driver = GraphDatabase.driver( neo4j.uri(), neo4j.authToken(), config );
148148

149149
ClientException e = assertThrows( ClientException.class, () -> startAndCloseTransactions( driver, maxPoolSize + 1 ) );
150150
assertThat( e, is( connectionAcquisitionTimeoutError( 542 ) ) );

driver/src/test/java/org/neo4j/driver/integration/SessionIT.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@
5858
import org.neo4j.driver.internal.security.SecurityPlanImpl;
5959
import org.neo4j.driver.internal.util.DisabledOnNeo4jWith;
6060
import org.neo4j.driver.internal.util.DriverFactoryWithFixedRetryLogic;
61-
import org.neo4j.driver.internal.util.DriverFactoryWithOneEventLoopThread;
6261
import org.neo4j.driver.internal.util.EnabledOnNeo4jWith;
6362
import org.neo4j.driver.reactive.RxResult;
6463
import org.neo4j.driver.reactive.RxSession;
@@ -880,9 +879,10 @@ void shouldNotRetryOnConnectionAcquisitionTimeout()
880879
.withMaxConnectionPoolSize( maxPoolSize )
881880
.withConnectionAcquisitionTimeout( 0, TimeUnit.SECONDS )
882881
.withMaxTransactionRetryTime( 42, TimeUnit.DAYS ) // retry for a really long time
882+
.withEventLoopThreads( 1 )
883883
.build();
884884

885-
driver = new DriverFactoryWithOneEventLoopThread().newInstance( neo4j.uri(), neo4j.authToken(), config );
885+
driver = GraphDatabase.driver( neo4j.uri(), neo4j.authToken(), config );
886886

887887
for ( int i = 0; i < maxPoolSize; i++ )
888888
{

driver/src/test/java/org/neo4j/driver/internal/util/DriverFactoryWithOneEventLoopThread.java

Lines changed: 0 additions & 46 deletions
This file was deleted.

driver/src/test/java/org/neo4j/driver/util/cc/ClusterDrivers.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import org.neo4j.driver.AuthTokens;
2626
import org.neo4j.driver.Config;
2727
import org.neo4j.driver.Driver;
28-
import org.neo4j.driver.internal.util.DriverFactoryWithOneEventLoopThread;
28+
import org.neo4j.driver.GraphDatabase;
2929
import org.neo4j.driver.util.cc.ClusterMemberRoleDiscoveryFactory.ClusterMemberRoleDiscovery;
3030

3131
import static org.neo4j.driver.internal.logging.DevNullLogging.DEV_NULL_LOGGING;
@@ -71,8 +71,7 @@ public void close()
7171

7272
private Driver createDriver( ClusterMember member )
7373
{
74-
DriverFactoryWithOneEventLoopThread factory = new DriverFactoryWithOneEventLoopThread();
75-
return factory.newInstance( member.getBoltUri(), AuthTokens.basic( user, password ), driverConfig() );
74+
return GraphDatabase.driver( member.getBoltUri(), AuthTokens.basic( user, password ), driverConfig() );
7675
}
7776

7877
private static Config driverConfig()
@@ -82,6 +81,7 @@ private static Config driverConfig()
8281
.withoutEncryption()
8382
.withMaxConnectionPoolSize( 1 )
8483
.withConnectionLivenessCheckTimeout( 0, TimeUnit.MILLISECONDS )
84+
.withEventLoopThreads( 1 )
8585
.build();
8686
}
8787
}

driver/src/test/java/org/neo4j/driver/util/cc/LocalOrRemoteClusterExtension.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,9 @@
2929
import org.neo4j.driver.AuthTokens;
3030
import org.neo4j.driver.Config;
3131
import org.neo4j.driver.Driver;
32-
import org.neo4j.driver.internal.util.DriverFactoryWithOneEventLoopThread;
32+
import org.neo4j.driver.GraphDatabase;
3333
import org.neo4j.driver.util.TestUtil;
3434

35-
import static org.neo4j.driver.Config.defaultConfig;
3635
import static org.neo4j.driver.internal.Scheme.NEO4J_URI_SCHEME;
3736

3837
public class LocalOrRemoteClusterExtension implements BeforeAllCallback, AfterEachCallback, AfterAllCallback
@@ -124,8 +123,10 @@ public void dumpClusterLogs()
124123

125124
private void deleteDataInRemoteCluster()
126125
{
127-
DriverFactoryWithOneEventLoopThread driverFactory = new DriverFactoryWithOneEventLoopThread();
128-
try ( Driver driver = driverFactory.newInstance( getClusterUri(), getAuthToken(), defaultConfig() ) )
126+
Config.ConfigBuilder builder = Config.builder();
127+
builder.withEventLoopThreads( 1 );
128+
129+
try ( Driver driver = GraphDatabase.driver( getClusterUri(), getAuthToken(), config( builder ).build() ) )
129130
{
130131
TestUtil.cleanDb( driver );
131132
}

0 commit comments

Comments
 (0)