Skip to content

Commit 9063f9b

Browse files
committed
Get cluster URI from any core member in applicable cluster tests (neo4j#1093)
1 parent 0198072 commit 9063f9b

File tree

5 files changed

+23
-64
lines changed

5 files changed

+23
-64
lines changed

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

+3-3
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,15 @@
3131
import java.time.ZonedDateTime;
3232
import java.util.List;
3333
import java.util.concurrent.ThreadLocalRandom;
34+
import java.util.function.Function;
3435
import java.util.function.Supplier;
3536
import java.util.stream.Stream;
3637

37-
import org.neo4j.driver.internal.util.EnabledOnNeo4jWith;
3838
import org.neo4j.driver.Record;
3939
import org.neo4j.driver.Result;
4040
import org.neo4j.driver.Value;
41+
import org.neo4j.driver.internal.util.EnabledOnNeo4jWith;
4142
import org.neo4j.driver.types.IsoDuration;
42-
import java.util.function.Function;
4343
import org.neo4j.driver.util.ParallelizableIT;
4444
import org.neo4j.driver.util.SessionExtension;
4545
import org.neo4j.driver.util.TemporalUtil;
@@ -48,10 +48,10 @@
4848
import static java.util.Collections.singletonMap;
4949
import static java.util.stream.Collectors.toList;
5050
import static org.junit.jupiter.api.Assertions.assertEquals;
51-
import static org.neo4j.driver.internal.util.Neo4jFeature.TEMPORAL_TYPES;
5251
import static org.neo4j.driver.Values.isoDuration;
5352
import static org.neo4j.driver.Values.ofOffsetDateTime;
5453
import static org.neo4j.driver.Values.parameters;
54+
import static org.neo4j.driver.internal.util.Neo4jFeature.TEMPORAL_TYPES;
5555

5656
@EnabledOnNeo4jWith( TEMPORAL_TYPES )
5757
@ParallelizableIT

driver/src/test/java/org/neo4j/driver/stress/CausalClusteringIT.java

+14-16
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ public Session newSession( AccessMode mode )
116116
{
117117
if ( driver == null )
118118
{
119-
driver = createDriver( clusterRule.getCluster().leader().getRoutingUri() );
119+
driver = createDriver( clusterRule.getCluster().getRoutingUri() );
120120
}
121121

122122
return driver.session( builder().withDefaultAccessMode( mode ).build() );
@@ -275,7 +275,7 @@ void shouldDropBrokenOldConnections() throws Exception
275275
FakeClock clock = new FakeClock();
276276
ChannelTrackingDriverFactory driverFactory = new ChannelTrackingDriverFactory( clock );
277277

278-
URI routingUri = cluster.leader().getRoutingUri();
278+
URI routingUri = cluster.getRoutingUri();
279279
AuthToken auth = clusterRule.getDefaultAuthToken();
280280

281281
try ( Driver driver = driverFactory.newInstance( routingUri, auth, RoutingSettings.DEFAULT, RetrySettings.DEFAULT, config, SecurityPlanImpl.insecure() ) )
@@ -458,10 +458,9 @@ void shouldAcceptMultipleBookmarks() throws Exception
458458
String value = "Alice";
459459

460460
Cluster cluster = clusterRule.getCluster();
461-
ClusterMember leader = cluster.leader();
462461
executor = newExecutor();
463462

464-
try ( Driver driver = createDriver( leader.getRoutingUri() ) )
463+
try ( Driver driver = createDriver( cluster.getRoutingUri() ) )
465464
{
466465
List<Future<Bookmark>> futures = new ArrayList<>();
467466
for ( int i = 0; i < threadCount; i++ )
@@ -490,16 +489,18 @@ void shouldAcceptMultipleBookmarks() throws Exception
490489
void shouldNotReuseReadConnectionForWriteTransaction()
491490
{
492491
Cluster cluster = clusterRule.getCluster();
493-
ClusterMember leader = cluster.leader();
494492

495-
try ( Driver driver = createDriver( leader.getRoutingUri() ) )
493+
try ( Driver driver = createDriver( cluster.getRoutingUri() ) )
496494
{
497495
AsyncSession session = driver.asyncSession( builder().withDefaultAccessMode( AccessMode.READ ).build() );
498496

499497
CompletionStage<List<RecordAndSummary>> resultsStage = session.runAsync( "RETURN 42" )
500-
.thenCompose( cursor1 ->
501-
session.writeTransactionAsync( tx -> tx.runAsync( "CREATE (:Node1) RETURN 42" )
502-
.thenCompose( cursor2 -> combineCursors( cursor2, cursor1 ) ) ) );
498+
.thenCompose( cursor1 ->
499+
session.writeTransactionAsync(
500+
tx -> tx.runAsync( "CREATE (:Node1) RETURN 42" )
501+
.thenCompose(
502+
cursor2 -> combineCursors( cursor2,
503+
cursor1 ) ) ) );
503504

504505
List<RecordAndSummary> results = await( resultsStage );
505506
assertEquals( 2, results.size() );
@@ -528,15 +529,14 @@ void shouldNotReuseReadConnectionForWriteTransaction()
528529
void shouldRespectMaxConnectionPoolSizePerClusterMember()
529530
{
530531
Cluster cluster = clusterRule.getCluster();
531-
ClusterMember leader = cluster.leader();
532532

533533
Config config = Config.builder()
534534
.withMaxConnectionPoolSize( 2 )
535535
.withConnectionAcquisitionTimeout( 42, MILLISECONDS )
536536
.withLogging( DEV_NULL_LOGGING )
537537
.build();
538538

539-
try ( Driver driver = createDriver( leader.getRoutingUri(), config ) )
539+
try ( Driver driver = createDriver( cluster.getRoutingUri(), config ) )
540540
{
541541
Session writeSession1 = driver.session( builder().withDefaultAccessMode( AccessMode.WRITE ).build() );
542542
writeSession1.beginTransaction();
@@ -561,11 +561,10 @@ void shouldRespectMaxConnectionPoolSizePerClusterMember()
561561
void shouldAllowExistingTransactionToCompleteAfterDifferentConnectionBreaks()
562562
{
563563
Cluster cluster = clusterRule.getCluster();
564-
ClusterMember leader = cluster.leader();
565564

566565
FailingConnectionDriverFactory driverFactory = new FailingConnectionDriverFactory();
567566

568-
try ( Driver driver = driverFactory.newInstance( leader.getRoutingUri(), clusterRule.getDefaultAuthToken(),
567+
try ( Driver driver = driverFactory.newInstance( cluster.getRoutingUri(), clusterRule.getDefaultAuthToken(),
569568
RoutingSettings.DEFAULT, RetrySettings.DEFAULT, configWithoutLogging(), SecurityPlanImpl.insecure() ) )
570569
{
571570
Session session1 = driver.session();
@@ -604,10 +603,9 @@ RoutingSettings.DEFAULT, RetrySettings.DEFAULT, configWithoutLogging(), Security
604603
void shouldRediscoverWhenConnectionsToAllCoresBreak()
605604
{
606605
Cluster cluster = clusterRule.getCluster();
607-
ClusterMember leader = cluster.leader();
608606

609607
ChannelTrackingDriverFactory driverFactory = new ChannelTrackingDriverFactory();
610-
try ( Driver driver = driverFactory.newInstance( leader.getRoutingUri(), clusterRule.getDefaultAuthToken(),
608+
try ( Driver driver = driverFactory.newInstance( cluster.getRoutingUri(), clusterRule.getDefaultAuthToken(),
611609
RoutingSettings.DEFAULT, RetrySettings.DEFAULT, configWithoutLogging(), SecurityPlanImpl.insecure() ) )
612610
{
613611
try ( Session session = driver.session() )
@@ -673,7 +671,7 @@ void shouldKeepOperatingWhenConnectionsBreak() throws Exception
673671
.withMaxTransactionRetryTime( testRunTimeMs, MILLISECONDS )
674672
.build();
675673

676-
try ( Driver driver = driverFactory.newInstance( cluster.leader().getRoutingUri(), clusterRule.getDefaultAuthToken(),
674+
try ( Driver driver = driverFactory.newInstance( cluster.getRoutingUri(), clusterRule.getDefaultAuthToken(),
677675
RoutingSettings.DEFAULT, RetrySettings.DEFAULT, config, SecurityPlanImpl.insecure() ) )
678676
{
679677
List<Future<?>> results = new ArrayList<>();

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

+5-37
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,16 @@
1919
package org.neo4j.driver.util.cc;
2020

2121
import java.io.FileNotFoundException;
22-
import java.net.InetAddress;
2322
import java.net.URI;
24-
import java.net.UnknownHostException;
2523
import java.nio.file.Path;
2624
import java.util.HashSet;
27-
import java.util.List;
2825
import java.util.Map;
2926
import java.util.Set;
3027
import java.util.concurrent.ThreadLocalRandom;
3128
import java.util.concurrent.TimeUnit;
3229

3330
import org.neo4j.driver.Bookmark;
3431
import org.neo4j.driver.Driver;
35-
import org.neo4j.driver.Record;
3632
import org.neo4j.driver.internal.BoltServerAddress;
3733
import org.neo4j.driver.util.TestUtil;
3834
import org.neo4j.driver.util.cc.ClusterMemberRoleDiscoveryFactory.ClusterMemberRoleDiscovery;
@@ -71,6 +67,11 @@ Cluster withMembers( Set<ClusterMember> newMembers ) throws ClusterUnavailableEx
7167
return new Cluster( path, newMembers, clusterDrivers );
7268
}
7369

70+
public URI getRoutingUri()
71+
{
72+
return randomOf( cores() ).getRoutingUri();
73+
}
74+
7475
public Path getPath()
7576
{
7677
return path;
@@ -165,13 +166,6 @@ public void stop( ClusterMember member )
165166
waitForMembersToBeOnline();
166167
}
167168

168-
public void kill( ClusterMember member )
169-
{
170-
removeOfflineMember( member );
171-
SharedCluster.kill( member );
172-
waitForMembersToBeOnline();
173-
}
174-
175169
public Driver getDirectDriver( ClusterMember member )
176170
{
177171
return clusterDrivers.getDriver( member );
@@ -389,32 +383,6 @@ private static Set<BoltServerAddress> extractBoltAddresses( Set<ClusterMember> m
389383
return addresses;
390384
}
391385

392-
private static BoltServerAddress extractBoltAddress( Record record )
393-
{
394-
List<Object> addresses = record.get( "addresses" ).asList();
395-
String boltUriString = (String) addresses.get( 0 );
396-
URI boltUri = URI.create( boltUriString );
397-
return newBoltServerAddress( boltUri );
398-
}
399-
400-
private static BoltServerAddress newBoltServerAddress( URI uri )
401-
{
402-
try
403-
{
404-
return new BoltServerAddress( InetAddress.getByName( uri.getHost() ).getHostAddress(), uri.getPort() );
405-
}
406-
catch ( UnknownHostException e )
407-
{
408-
throw new RuntimeException( "Unable to resolve host to IP in URI: '" + uri + "'" );
409-
}
410-
}
411-
412-
private static ClusterMemberRole extractRole( Record record )
413-
{
414-
String roleString = record.get( "role" ).asString();
415-
return ClusterMemberRole.valueOf( roleString.toUpperCase() );
416-
}
417-
418386
private static ClusterMember findByBoltAddress( BoltServerAddress boltAddress, Set<ClusterMember> members )
419387
{
420388
for ( ClusterMember member : members )

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public void beforeAll( ExtensionContext context ) throws Exception
7171
{
7272
localClusterExtension = new ClusterExtension();
7373
localClusterExtension.beforeAll( context );
74-
clusterUri = localClusterExtension.getCluster().leader().getRoutingUri();
74+
clusterUri = localClusterExtension.getCluster().getRoutingUri();
7575
}
7676
}
7777

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

-7
Original file line numberDiff line numberDiff line change
@@ -115,13 +115,6 @@ static void kill()
115115
debug( "Cluster at `%s` killed.", clusterInstance.getPath() );
116116
}
117117

118-
static void kill( ClusterMember member )
119-
{
120-
assertClusterExists();
121-
ClusterControl.killClusterMember( member.getPath() );
122-
debug( "Cluster member at `%s` killed.", member.getPath() );
123-
}
124-
125118
private static Set<ClusterMember> parseStartCommandOutput( String output )
126119
{
127120
Set<ClusterMember> result = new HashSet<>();

0 commit comments

Comments
 (0)