-
Notifications
You must be signed in to change notification settings - Fork 75
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add/Update/Fix/Run RPC server and client tests (#214)
Makes the existing tests run on build and actually work. Adds test for Greengrass client V2. This change very crucially adds a call to builder.excludeFieldsWithoutExposeAnnotation() when constructing the GSON instance. This tells GSON to only serialize and deserialize fields which are marked as @Exposed. This is necessary for JDK 9+ specifically to serialize errors because without it, GSON tries to serialize private fields from Throwable which Java prevents. Fixes Greengrass client V2 which didn't run lambda-based callbacks in the executor. Makes the socket domain configurable in the v2 client builder so that we can use IP instead of domain sockets.
- Loading branch information
Showing
70 changed files
with
4,361 additions
and
477 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -175,4 +175,6 @@ $RECYCLE.BIN/ | |
.project | ||
bin/ | ||
.classpath | ||
.settings | ||
.settings | ||
|
||
*.log |
42 changes: 42 additions & 0 deletions
42
...client/src/test/java/software/amazon/awssdk/awstest/CauseServiceErrorResponseHandler.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
package software.amazon.awssdk.awstest; | ||
|
||
import software.amazon.awssdk.awstest.model.CauseServiceErrorResponse; | ||
import software.amazon.awssdk.eventstreamrpc.OperationResponse; | ||
import software.amazon.awssdk.eventstreamrpc.StreamResponse; | ||
import software.amazon.awssdk.eventstreamrpc.model.EventStreamJsonMessage; | ||
|
||
import java.util.concurrent.CompletableFuture; | ||
|
||
public final class CauseServiceErrorResponseHandler implements StreamResponse<CauseServiceErrorResponse, EventStreamJsonMessage> { | ||
private final OperationResponse<CauseServiceErrorResponse, EventStreamJsonMessage> operationResponse; | ||
|
||
public CauseServiceErrorResponseHandler( | ||
final OperationResponse<CauseServiceErrorResponse, EventStreamJsonMessage> operationResponse) { | ||
this.operationResponse = operationResponse; | ||
} | ||
|
||
@Override | ||
public CompletableFuture<Void> getRequestFlushFuture() { | ||
return operationResponse.getRequestFlushFuture(); | ||
} | ||
|
||
@Override | ||
public CompletableFuture<CauseServiceErrorResponse> getResponse() { | ||
return operationResponse.getResponse(); | ||
} | ||
|
||
@Override | ||
public CompletableFuture<Void> sendStreamEvent(final EventStreamJsonMessage event) { | ||
return operationResponse.sendStreamEvent(event); | ||
} | ||
|
||
@Override | ||
public CompletableFuture<Void> closeStream() { | ||
return operationResponse.closeStream(); | ||
} | ||
|
||
@Override | ||
public boolean isClosed() { | ||
return operationResponse.isClosed(); | ||
} | ||
} |
42 changes: 42 additions & 0 deletions
42
...rc/test/java/software/amazon/awssdk/awstest/CauseStreamServiceToErrorResponseHandler.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
package software.amazon.awssdk.awstest; | ||
|
||
import software.amazon.awssdk.awstest.model.EchoStreamingMessage; | ||
import software.amazon.awssdk.awstest.model.EchoStreamingResponse; | ||
import software.amazon.awssdk.eventstreamrpc.OperationResponse; | ||
import software.amazon.awssdk.eventstreamrpc.StreamResponse; | ||
|
||
import java.util.concurrent.CompletableFuture; | ||
|
||
public final class CauseStreamServiceToErrorResponseHandler implements StreamResponse<EchoStreamingResponse, EchoStreamingMessage> { | ||
private final OperationResponse<EchoStreamingResponse, EchoStreamingMessage> operationResponse; | ||
|
||
public CauseStreamServiceToErrorResponseHandler( | ||
final OperationResponse<EchoStreamingResponse, EchoStreamingMessage> operationResponse) { | ||
this.operationResponse = operationResponse; | ||
} | ||
|
||
@Override | ||
public CompletableFuture<Void> getRequestFlushFuture() { | ||
return operationResponse.getRequestFlushFuture(); | ||
} | ||
|
||
@Override | ||
public CompletableFuture<EchoStreamingResponse> getResponse() { | ||
return operationResponse.getResponse(); | ||
} | ||
|
||
@Override | ||
public CompletableFuture<Void> sendStreamEvent(final EchoStreamingMessage event) { | ||
return operationResponse.sendStreamEvent(event); | ||
} | ||
|
||
@Override | ||
public CompletableFuture<Void> closeStream() { | ||
return operationResponse.closeStream(); | ||
} | ||
|
||
@Override | ||
public boolean isClosed() { | ||
return operationResponse.isClosed(); | ||
} | ||
} |
42 changes: 42 additions & 0 deletions
42
...m-rpc-client/src/test/java/software/amazon/awssdk/awstest/EchoMessageResponseHandler.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
package software.amazon.awssdk.awstest; | ||
|
||
import software.amazon.awssdk.awstest.model.EchoMessageResponse; | ||
import software.amazon.awssdk.eventstreamrpc.OperationResponse; | ||
import software.amazon.awssdk.eventstreamrpc.StreamResponse; | ||
import software.amazon.awssdk.eventstreamrpc.model.EventStreamJsonMessage; | ||
|
||
import java.util.concurrent.CompletableFuture; | ||
|
||
public final class EchoMessageResponseHandler implements StreamResponse<EchoMessageResponse, EventStreamJsonMessage> { | ||
private final OperationResponse<EchoMessageResponse, EventStreamJsonMessage> operationResponse; | ||
|
||
public EchoMessageResponseHandler( | ||
final OperationResponse<EchoMessageResponse, EventStreamJsonMessage> operationResponse) { | ||
this.operationResponse = operationResponse; | ||
} | ||
|
||
@Override | ||
public CompletableFuture<Void> getRequestFlushFuture() { | ||
return operationResponse.getRequestFlushFuture(); | ||
} | ||
|
||
@Override | ||
public CompletableFuture<EchoMessageResponse> getResponse() { | ||
return operationResponse.getResponse(); | ||
} | ||
|
||
@Override | ||
public CompletableFuture<Void> sendStreamEvent(final EventStreamJsonMessage event) { | ||
return operationResponse.sendStreamEvent(event); | ||
} | ||
|
||
@Override | ||
public CompletableFuture<Void> closeStream() { | ||
return operationResponse.closeStream(); | ||
} | ||
|
||
@Override | ||
public boolean isClosed() { | ||
return operationResponse.isClosed(); | ||
} | ||
} |
42 changes: 42 additions & 0 deletions
42
...lient/src/test/java/software/amazon/awssdk/awstest/EchoStreamMessagesResponseHandler.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
package software.amazon.awssdk.awstest; | ||
|
||
import software.amazon.awssdk.awstest.model.EchoStreamingMessage; | ||
import software.amazon.awssdk.awstest.model.EchoStreamingResponse; | ||
import software.amazon.awssdk.eventstreamrpc.OperationResponse; | ||
import software.amazon.awssdk.eventstreamrpc.StreamResponse; | ||
|
||
import java.util.concurrent.CompletableFuture; | ||
|
||
public final class EchoStreamMessagesResponseHandler implements StreamResponse<EchoStreamingResponse, EchoStreamingMessage> { | ||
private final OperationResponse<EchoStreamingResponse, EchoStreamingMessage> operationResponse; | ||
|
||
public EchoStreamMessagesResponseHandler( | ||
final OperationResponse<EchoStreamingResponse, EchoStreamingMessage> operationResponse) { | ||
this.operationResponse = operationResponse; | ||
} | ||
|
||
@Override | ||
public CompletableFuture<Void> getRequestFlushFuture() { | ||
return operationResponse.getRequestFlushFuture(); | ||
} | ||
|
||
@Override | ||
public CompletableFuture<EchoStreamingResponse> getResponse() { | ||
return operationResponse.getResponse(); | ||
} | ||
|
||
@Override | ||
public CompletableFuture<Void> sendStreamEvent(final EchoStreamingMessage event) { | ||
return operationResponse.sendStreamEvent(event); | ||
} | ||
|
||
@Override | ||
public CompletableFuture<Void> closeStream() { | ||
return operationResponse.closeStream(); | ||
} | ||
|
||
@Override | ||
public boolean isClosed() { | ||
return operationResponse.isClosed(); | ||
} | ||
} |
33 changes: 33 additions & 0 deletions
33
...ass/event-stream-rpc-client/src/test/java/software/amazon/awssdk/awstest/EchoTestRPC.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
package software.amazon.awssdk.awstest; | ||
|
||
import software.amazon.awssdk.awstest.model.CauseServiceErrorRequest; | ||
import software.amazon.awssdk.awstest.model.EchoMessageRequest; | ||
import software.amazon.awssdk.awstest.model.EchoStreamingMessage; | ||
import software.amazon.awssdk.awstest.model.EchoStreamingRequest; | ||
import software.amazon.awssdk.awstest.model.GetAllCustomersRequest; | ||
import software.amazon.awssdk.awstest.model.GetAllProductsRequest; | ||
import software.amazon.awssdk.eventstreamrpc.StreamResponseHandler; | ||
import software.amazon.awssdk.eventstreamrpc.model.EventStreamJsonMessage; | ||
|
||
import java.util.Optional; | ||
|
||
public interface EchoTestRPC { | ||
CauseServiceErrorResponseHandler causeServiceError(final CauseServiceErrorRequest request, | ||
final Optional<StreamResponseHandler<EventStreamJsonMessage>> streamResponseHandler); | ||
|
||
CauseStreamServiceToErrorResponseHandler causeStreamServiceToError( | ||
final EchoStreamingRequest request, | ||
final Optional<StreamResponseHandler<EchoStreamingMessage>> streamResponseHandler); | ||
|
||
EchoMessageResponseHandler echoMessage(final EchoMessageRequest request, | ||
final Optional<StreamResponseHandler<EventStreamJsonMessage>> streamResponseHandler); | ||
|
||
EchoStreamMessagesResponseHandler echoStreamMessages(final EchoStreamingRequest request, | ||
final Optional<StreamResponseHandler<EchoStreamingMessage>> streamResponseHandler); | ||
|
||
GetAllCustomersResponseHandler getAllCustomers(final GetAllCustomersRequest request, | ||
final Optional<StreamResponseHandler<EventStreamJsonMessage>> streamResponseHandler); | ||
|
||
GetAllProductsResponseHandler getAllProducts(final GetAllProductsRequest request, | ||
final Optional<StreamResponseHandler<EventStreamJsonMessage>> streamResponseHandler); | ||
} |
63 changes: 63 additions & 0 deletions
63
...ent-stream-rpc-client/src/test/java/software/amazon/awssdk/awstest/EchoTestRPCClient.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
package software.amazon.awssdk.awstest; | ||
|
||
import software.amazon.awssdk.awstest.model.CauseServiceErrorRequest; | ||
import software.amazon.awssdk.awstest.model.EchoMessageRequest; | ||
import software.amazon.awssdk.awstest.model.EchoStreamingMessage; | ||
import software.amazon.awssdk.awstest.model.EchoStreamingRequest; | ||
import software.amazon.awssdk.awstest.model.GetAllCustomersRequest; | ||
import software.amazon.awssdk.awstest.model.GetAllProductsRequest; | ||
import software.amazon.awssdk.eventstreamrpc.EventStreamRPCClient; | ||
import software.amazon.awssdk.eventstreamrpc.EventStreamRPCConnection; | ||
import software.amazon.awssdk.eventstreamrpc.StreamResponseHandler; | ||
import software.amazon.awssdk.eventstreamrpc.model.EventStreamJsonMessage; | ||
|
||
import java.util.Optional; | ||
|
||
public class EchoTestRPCClient extends EventStreamRPCClient implements EchoTestRPC { | ||
public EchoTestRPCClient(final EventStreamRPCConnection connection) { | ||
super(connection); | ||
} | ||
|
||
@Override | ||
public CauseServiceErrorResponseHandler causeServiceError(final CauseServiceErrorRequest request, | ||
final Optional<StreamResponseHandler<EventStreamJsonMessage>> streamResponseHandler) { | ||
final CauseServiceErrorOperationContext operationContext = EchoTestRPCServiceModel.getCauseServiceErrorModelContext(); | ||
return new CauseServiceErrorResponseHandler(doOperationInvoke(operationContext, request, streamResponseHandler)); | ||
} | ||
|
||
@Override | ||
public CauseStreamServiceToErrorResponseHandler causeStreamServiceToError( | ||
final EchoStreamingRequest request, | ||
final Optional<StreamResponseHandler<EchoStreamingMessage>> streamResponseHandler) { | ||
final CauseStreamServiceToErrorOperationContext operationContext = EchoTestRPCServiceModel.getCauseStreamServiceToErrorModelContext(); | ||
return new CauseStreamServiceToErrorResponseHandler(doOperationInvoke(operationContext, request, streamResponseHandler)); | ||
} | ||
|
||
@Override | ||
public EchoMessageResponseHandler echoMessage(final EchoMessageRequest request, | ||
final Optional<StreamResponseHandler<EventStreamJsonMessage>> streamResponseHandler) { | ||
final EchoMessageOperationContext operationContext = EchoTestRPCServiceModel.getEchoMessageModelContext(); | ||
return new EchoMessageResponseHandler(doOperationInvoke(operationContext, request, streamResponseHandler)); | ||
} | ||
|
||
@Override | ||
public EchoStreamMessagesResponseHandler echoStreamMessages(final EchoStreamingRequest request, | ||
final Optional<StreamResponseHandler<EchoStreamingMessage>> streamResponseHandler) { | ||
final EchoStreamMessagesOperationContext operationContext = EchoTestRPCServiceModel.getEchoStreamMessagesModelContext(); | ||
return new EchoStreamMessagesResponseHandler(doOperationInvoke(operationContext, request, streamResponseHandler)); | ||
} | ||
|
||
@Override | ||
public GetAllCustomersResponseHandler getAllCustomers(final GetAllCustomersRequest request, | ||
final Optional<StreamResponseHandler<EventStreamJsonMessage>> streamResponseHandler) { | ||
final GetAllCustomersOperationContext operationContext = EchoTestRPCServiceModel.getGetAllCustomersModelContext(); | ||
return new GetAllCustomersResponseHandler(doOperationInvoke(operationContext, request, streamResponseHandler)); | ||
} | ||
|
||
@Override | ||
public GetAllProductsResponseHandler getAllProducts(final GetAllProductsRequest request, | ||
final Optional<StreamResponseHandler<EventStreamJsonMessage>> streamResponseHandler) { | ||
final GetAllProductsOperationContext operationContext = EchoTestRPCServiceModel.getGetAllProductsModelContext(); | ||
return new GetAllProductsResponseHandler(doOperationInvoke(operationContext, request, streamResponseHandler)); | ||
} | ||
} |
42 changes: 42 additions & 0 deletions
42
...c-client/src/test/java/software/amazon/awssdk/awstest/GetAllCustomersResponseHandler.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
package software.amazon.awssdk.awstest; | ||
|
||
import software.amazon.awssdk.awstest.model.GetAllCustomersResponse; | ||
import software.amazon.awssdk.eventstreamrpc.OperationResponse; | ||
import software.amazon.awssdk.eventstreamrpc.StreamResponse; | ||
import software.amazon.awssdk.eventstreamrpc.model.EventStreamJsonMessage; | ||
|
||
import java.util.concurrent.CompletableFuture; | ||
|
||
public final class GetAllCustomersResponseHandler implements StreamResponse<GetAllCustomersResponse, EventStreamJsonMessage> { | ||
private final OperationResponse<GetAllCustomersResponse, EventStreamJsonMessage> operationResponse; | ||
|
||
public GetAllCustomersResponseHandler( | ||
final OperationResponse<GetAllCustomersResponse, EventStreamJsonMessage> operationResponse) { | ||
this.operationResponse = operationResponse; | ||
} | ||
|
||
@Override | ||
public CompletableFuture<Void> getRequestFlushFuture() { | ||
return operationResponse.getRequestFlushFuture(); | ||
} | ||
|
||
@Override | ||
public CompletableFuture<GetAllCustomersResponse> getResponse() { | ||
return operationResponse.getResponse(); | ||
} | ||
|
||
@Override | ||
public CompletableFuture<Void> sendStreamEvent(final EventStreamJsonMessage event) { | ||
return operationResponse.sendStreamEvent(event); | ||
} | ||
|
||
@Override | ||
public CompletableFuture<Void> closeStream() { | ||
return operationResponse.closeStream(); | ||
} | ||
|
||
@Override | ||
public boolean isClosed() { | ||
return operationResponse.isClosed(); | ||
} | ||
} |
42 changes: 42 additions & 0 deletions
42
...pc-client/src/test/java/software/amazon/awssdk/awstest/GetAllProductsResponseHandler.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
package software.amazon.awssdk.awstest; | ||
|
||
import software.amazon.awssdk.awstest.model.GetAllProductsResponse; | ||
import software.amazon.awssdk.eventstreamrpc.OperationResponse; | ||
import software.amazon.awssdk.eventstreamrpc.StreamResponse; | ||
import software.amazon.awssdk.eventstreamrpc.model.EventStreamJsonMessage; | ||
|
||
import java.util.concurrent.CompletableFuture; | ||
|
||
public final class GetAllProductsResponseHandler implements StreamResponse<GetAllProductsResponse, EventStreamJsonMessage> { | ||
private final OperationResponse<GetAllProductsResponse, EventStreamJsonMessage> operationResponse; | ||
|
||
public GetAllProductsResponseHandler( | ||
final OperationResponse<GetAllProductsResponse, EventStreamJsonMessage> operationResponse) { | ||
this.operationResponse = operationResponse; | ||
} | ||
|
||
@Override | ||
public CompletableFuture<Void> getRequestFlushFuture() { | ||
return operationResponse.getRequestFlushFuture(); | ||
} | ||
|
||
@Override | ||
public CompletableFuture<GetAllProductsResponse> getResponse() { | ||
return operationResponse.getResponse(); | ||
} | ||
|
||
@Override | ||
public CompletableFuture<Void> sendStreamEvent(final EventStreamJsonMessage event) { | ||
return operationResponse.sendStreamEvent(event); | ||
} | ||
|
||
@Override | ||
public CompletableFuture<Void> closeStream() { | ||
return operationResponse.closeStream(); | ||
} | ||
|
||
@Override | ||
public boolean isClosed() { | ||
return operationResponse.isClosed(); | ||
} | ||
} |
Oops, something went wrong.