Skip to content

Commit 7e99769

Browse files
committed
wip (request refactoring)
1 parent 8b43a69 commit 7e99769

27 files changed

+118
-113
lines changed

testkit-backend/src/main/java/neo4j/org/testkit/backend/channel/handler/TestkitMessageOutboundHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public void write( ChannelHandlerContext ctx, Object msg, ChannelPromise promise
3333
{
3434
String testkitResponseStr = (String) msg;
3535
String testkitMessage = String.format( "#response begin\n%s\n#response end\n", testkitResponseStr );
36-
ByteBuf byteBuf = Unpooled.unreleasableBuffer( Unpooled.copiedBuffer( testkitMessage, StandardCharsets.UTF_8 ) );
36+
ByteBuf byteBuf = Unpooled.copiedBuffer( testkitMessage, StandardCharsets.UTF_8 );
3737
ctx.writeAndFlush( byteBuf, promise );
3838
}
3939
}

testkit-backend/src/main/java/neo4j/org/testkit/backend/channel/handler/TestkitRequestProcessorHandler.java

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import neo4j.org.testkit.backend.messages.responses.TestkitResponse;
2929

3030
import java.util.concurrent.CompletionException;
31-
import java.util.concurrent.CompletionStage;
3231

3332
import org.neo4j.driver.exceptions.Neo4jException;
3433
import org.neo4j.driver.exceptions.UntrustedServerException;
@@ -50,27 +49,23 @@ public void channelRegistered( ChannelHandlerContext ctx ) throws Exception
5049
public void channelRead( ChannelHandlerContext ctx, Object msg )
5150
{
5251
TestkitRequest testkitRequest = (TestkitRequest) msg;
53-
CompletionStage<TestkitResponse> responseStage = null;
5452
try
5553
{
56-
responseStage = testkitRequest.processAsync( testkitState );
54+
testkitRequest.processAsync( testkitState )
55+
.thenAccept( responseOpt -> responseOpt.ifPresent( ctx::writeAndFlush ) )
56+
.exceptionally( throwable ->
57+
{
58+
ctx.writeAndFlush( createErrorResponse( throwable ) );
59+
return null;
60+
} );
5761
}
5862
catch ( Throwable throwable )
5963
{
60-
ctx.writeAndFlush( handleError( throwable ) );
61-
}
62-
if ( responseStage != null )
63-
{
64-
responseStage.thenAccept( ctx::writeAndFlush )
65-
.exceptionally( throwable ->
66-
{
67-
ctx.writeAndFlush( handleError( throwable ) );
68-
return null;
69-
} );
64+
ctx.writeAndFlush( createErrorResponse( throwable ) );
7065
}
7166
}
7267

73-
private TestkitResponse handleError( Throwable throwable )
68+
private TestkitResponse createErrorResponse( Throwable throwable )
7469
{
7570
if ( throwable instanceof CompletionException )
7671
{

testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/CheckMultiDBSupport.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import neo4j.org.testkit.backend.messages.responses.MultiDBSupport;
2626
import neo4j.org.testkit.backend.messages.responses.TestkitResponse;
2727

28+
import java.util.Optional;
2829
import java.util.concurrent.CompletionStage;
2930

3031
@Setter
@@ -43,11 +44,12 @@ public TestkitResponse process( TestkitState testkitState )
4344
}
4445

4546
@Override
46-
public CompletionStage<TestkitResponse> processAsync( TestkitState testkitState )
47+
public CompletionStage<Optional<TestkitResponse>> processAsync( TestkitState testkitState )
4748
{
4849
return testkitState.getDrivers().get( data.getDriverId() )
4950
.supportsMultiDbAsync()
50-
.thenApply( this::createResponse );
51+
.thenApply( this::createResponse )
52+
.thenApply( Optional::of );
5153
}
5254

5355
private MultiDBSupport createResponse( boolean available )

testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/DomainNameResolutionCompleted.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import java.net.InetAddress;
2828
import java.net.UnknownHostException;
2929
import java.util.List;
30+
import java.util.Optional;
3031
import java.util.concurrent.CompletionStage;
3132

3233
@Setter
@@ -60,7 +61,7 @@ public TestkitResponse process( TestkitState testkitState )
6061
}
6162

6263
@Override
63-
public CompletionStage<TestkitResponse> processAsync( TestkitState testkitState )
64+
public CompletionStage<Optional<TestkitResponse>> processAsync( TestkitState testkitState )
6465
{
6566
throw new UnsupportedOperationException();
6667
}

testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/DriverClose.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import neo4j.org.testkit.backend.messages.responses.Driver;
2626
import neo4j.org.testkit.backend.messages.responses.TestkitResponse;
2727

28+
import java.util.Optional;
2829
import java.util.concurrent.CompletionStage;
2930

3031
@Setter
@@ -42,11 +43,12 @@ public TestkitResponse process( TestkitState testkitState )
4243
}
4344

4445
@Override
45-
public CompletionStage<TestkitResponse> processAsync( TestkitState testkitState )
46+
public CompletionStage<Optional<TestkitResponse>> processAsync( TestkitState testkitState )
4647
{
4748
return testkitState.getDrivers().get( data.getDriverId() )
4849
.closeAsync()
49-
.thenApply( ignored -> createResponse() );
50+
.thenApply( ignored -> createResponse() )
51+
.thenApply( Optional::of );
5052
}
5153

5254
private Driver createResponse()

testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/GetFeatures.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import java.util.Arrays;
2929
import java.util.Collections;
3030
import java.util.HashSet;
31+
import java.util.Optional;
3132
import java.util.Set;
3233
import java.util.concurrent.CompletableFuture;
3334
import java.util.concurrent.CompletionStage;
@@ -58,9 +59,9 @@ public TestkitResponse process( TestkitState testkitState )
5859
}
5960

6061
@Override
61-
public CompletionStage<TestkitResponse> processAsync( TestkitState testkitState )
62+
public CompletionStage<Optional<TestkitResponse>> processAsync( TestkitState testkitState )
6263
{
63-
return CompletableFuture.completedFuture( createResponse( COMMON_FEATURES ) );
64+
return CompletableFuture.completedFuture( Optional.of( createResponse( COMMON_FEATURES ) ) );
6465
}
6566

6667
private FeatureList createResponse( Set<String> features )

testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/GetRoutingTable.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727

2828
import java.util.Arrays;
2929
import java.util.List;
30+
import java.util.Optional;
3031
import java.util.concurrent.CompletableFuture;
3132
import java.util.concurrent.CompletionStage;
3233
import java.util.function.Function;
@@ -78,9 +79,9 @@ public TestkitResponse process( TestkitState testkitState )
7879
}
7980

8081
@Override
81-
public CompletionStage<TestkitResponse> processAsync( TestkitState testkitState )
82+
public CompletionStage<Optional<TestkitResponse>> processAsync( TestkitState testkitState )
8283
{
83-
return CompletableFuture.completedFuture( process( testkitState ) );
84+
return CompletableFuture.completedFuture( Optional.of( process( testkitState ) ) );
8485
}
8586

8687
@Setter

testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/NewDriver.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,9 @@ public TestkitResponse process( TestkitState testkitState )
109109
}
110110

111111
@Override
112-
public CompletionStage<TestkitResponse> processAsync( TestkitState testkitState )
112+
public CompletionStage<Optional<TestkitResponse>> processAsync( TestkitState testkitState )
113113
{
114-
return CompletableFuture.completedFuture( process( testkitState ) );
114+
return CompletableFuture.completedFuture( Optional.of( process( testkitState ) ) );
115115
}
116116

117117
private ServerAddressResolver callbackResolver( TestkitState testkitState )

testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/NewSession.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,10 @@ public TestkitResponse process( TestkitState testkitState )
5454
}
5555

5656
@Override
57-
public CompletionStage<TestkitResponse> processAsync( TestkitState testkitState )
57+
public CompletionStage<Optional<TestkitResponse>> processAsync( TestkitState testkitState )
5858
{
5959
return CompletableFuture.completedFuture(
60-
createSessionStateAndResponse( testkitState, this::createAsyncSessionState, testkitState.getAsyncSessionStates() ) );
60+
Optional.of( createSessionStateAndResponse( testkitState, this::createAsyncSessionState, testkitState.getAsyncSessionStates() ) ) );
6161
}
6262

6363
private <T> TestkitResponse createSessionStateAndResponse( TestkitState testkitState, BiFunction<Driver,SessionConfig,T> sessionStateProducer,

testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/ResolverResolutionCompleted.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626

2727
import java.util.LinkedHashSet;
2828
import java.util.List;
29+
import java.util.Optional;
2930
import java.util.concurrent.CompletionStage;
3031
import java.util.stream.Collectors;
3132

@@ -47,7 +48,7 @@ public TestkitResponse process( TestkitState testkitState )
4748
}
4849

4950
@Override
50-
public CompletionStage<TestkitResponse> processAsync( TestkitState testkitState )
51+
public CompletionStage<Optional<TestkitResponse>> processAsync( TestkitState testkitState )
5152
{
5253
throw new UnsupportedOperationException();
5354
}

0 commit comments

Comments
 (0)