Search in sources :

Example 16 with EndpointChannel

use of com.palantir.dialogue.EndpointChannel in project dialogue by palantir.

the class UserAgentEndpointChannelTest method injectsDialogueVersionAndEndpointVersion.

@Test
public void injectsDialogueVersionAndEndpointVersion() {
    EndpointChannel channel = UserAgentEndpointChannel.create(delegate, TestEndpoint.POST, baseAgent);
    // Special case: In IDEs, tests are run against classes (not JARs) and thus don't carry versions.
    String dialogueVersion = Optional.ofNullable(Channel.class.getPackage().getImplementationVersion()).orElse("0.0.0");
    channel.execute(request);
    verify(delegate).execute(requestCaptor.capture());
    assertThat(requestCaptor.getValue().headerParams().get("user-agent")).containsExactly("test-class/1.2.3 service/1.0.0 dialogue/" + dialogueVersion);
}
Also used : Channel(com.palantir.dialogue.Channel) EndpointChannel(com.palantir.dialogue.EndpointChannel) EndpointChannel(com.palantir.dialogue.EndpointChannel) Test(org.junit.jupiter.api.Test)

Example 17 with EndpointChannel

use of com.palantir.dialogue.EndpointChannel in project conjure-java by palantir.

the class EteServiceAsync method of.

/**
 * Creates an asynchronous/non-blocking client for a EteService service.
 */
static EteServiceAsync of(EndpointChannelFactory _endpointChannelFactory, ConjureRuntime _runtime) {
    return new EteServiceAsync() {

        private final PlainSerDe _plainSerDe = _runtime.plainSerDe();

        private final EndpointChannel stringChannel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.string);

        private final Deserializer<String> stringDeserializer = _runtime.bodySerDe().deserializer(new TypeMarker<String>() {
        });

        private final EndpointChannel integerChannel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.integer);

        private final Deserializer<Integer> integerDeserializer = _runtime.bodySerDe().deserializer(new TypeMarker<Integer>() {
        });

        private final EndpointChannel double_Channel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.double_);

        private final Deserializer<Double> double_Deserializer = _runtime.bodySerDe().deserializer(new TypeMarker<Double>() {
        });

        private final EndpointChannel boolean_Channel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.boolean_);

        private final Deserializer<Boolean> boolean_Deserializer = _runtime.bodySerDe().deserializer(new TypeMarker<Boolean>() {
        });

        private final EndpointChannel safelongChannel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.safelong);

        private final Deserializer<SafeLong> safelongDeserializer = _runtime.bodySerDe().deserializer(new TypeMarker<SafeLong>() {
        });

        private final EndpointChannel ridChannel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.rid);

        private final Deserializer<ResourceIdentifier> ridDeserializer = _runtime.bodySerDe().deserializer(new TypeMarker<ResourceIdentifier>() {
        });

        private final EndpointChannel bearertokenChannel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.bearertoken);

        private final Deserializer<BearerToken> bearertokenDeserializer = _runtime.bodySerDe().deserializer(new TypeMarker<BearerToken>() {
        });

        private final EndpointChannel optionalStringChannel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.optionalString);

        private final Deserializer<Optional<String>> optionalStringDeserializer = _runtime.bodySerDe().deserializer(new TypeMarker<Optional<String>>() {
        });

        private final EndpointChannel optionalEmptyChannel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.optionalEmpty);

        private final Deserializer<Optional<String>> optionalEmptyDeserializer = _runtime.bodySerDe().deserializer(new TypeMarker<Optional<String>>() {
        });

        private final EndpointChannel datetimeChannel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.datetime);

        private final Deserializer<OffsetDateTime> datetimeDeserializer = _runtime.bodySerDe().deserializer(new TypeMarker<OffsetDateTime>() {
        });

        private final EndpointChannel binaryChannel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.binary);

        private final EndpointChannel pathChannel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.path);

        private final Deserializer<String> pathDeserializer = _runtime.bodySerDe().deserializer(new TypeMarker<String>() {
        });

        private final EndpointChannel externalLongPathChannel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.externalLongPath);

        private final Deserializer<Long> externalLongPathDeserializer = _runtime.bodySerDe().deserializer(new TypeMarker<Long>() {
        });

        private final EndpointChannel optionalExternalLongQueryChannel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.optionalExternalLongQuery);

        private final Deserializer<Optional<Long>> optionalExternalLongQueryDeserializer = _runtime.bodySerDe().deserializer(new TypeMarker<Optional<Long>>() {
        });

        private final Serializer<StringAliasExample> notNullBodySerializer = _runtime.bodySerDe().serializer(new TypeMarker<StringAliasExample>() {
        });

        private final EndpointChannel notNullBodyChannel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.notNullBody);

        private final Deserializer<StringAliasExample> notNullBodyDeserializer = _runtime.bodySerDe().deserializer(new TypeMarker<StringAliasExample>() {
        });

        private final EndpointChannel aliasOneChannel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.aliasOne);

        private final Deserializer<StringAliasExample> aliasOneDeserializer = _runtime.bodySerDe().deserializer(new TypeMarker<StringAliasExample>() {
        });

        private final EndpointChannel optionalAliasOneChannel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.optionalAliasOne);

        private final Deserializer<StringAliasExample> optionalAliasOneDeserializer = _runtime.bodySerDe().deserializer(new TypeMarker<StringAliasExample>() {
        });

        private final EndpointChannel aliasTwoChannel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.aliasTwo);

        private final Deserializer<NestedStringAliasExample> aliasTwoDeserializer = _runtime.bodySerDe().deserializer(new TypeMarker<NestedStringAliasExample>() {
        });

        private final Serializer<StringAliasExample> notNullBodyExternalImportSerializer = _runtime.bodySerDe().serializer(new TypeMarker<StringAliasExample>() {
        });

        private final EndpointChannel notNullBodyExternalImportChannel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.notNullBodyExternalImport);

        private final Deserializer<StringAliasExample> notNullBodyExternalImportDeserializer = _runtime.bodySerDe().deserializer(new TypeMarker<StringAliasExample>() {
        });

        private final Serializer<Optional<StringAliasExample>> optionalBodyExternalImportSerializer = _runtime.bodySerDe().serializer(new TypeMarker<Optional<StringAliasExample>>() {
        });

        private final EndpointChannel optionalBodyExternalImportChannel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.optionalBodyExternalImport);

        private final Deserializer<Optional<StringAliasExample>> optionalBodyExternalImportDeserializer = _runtime.bodySerDe().deserializer(new TypeMarker<Optional<StringAliasExample>>() {
        });

        private final EndpointChannel optionalQueryExternalImportChannel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.optionalQueryExternalImport);

        private final Deserializer<Optional<StringAliasExample>> optionalQueryExternalImportDeserializer = _runtime.bodySerDe().deserializer(new TypeMarker<Optional<StringAliasExample>>() {
        });

        private final EndpointChannel noReturnChannel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.noReturn);

        private final Deserializer<Void> noReturnDeserializer = _runtime.bodySerDe().emptyBodyDeserializer();

        private final EndpointChannel enumQueryChannel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.enumQuery);

        private final Deserializer<SimpleEnum> enumQueryDeserializer = _runtime.bodySerDe().deserializer(new TypeMarker<SimpleEnum>() {
        });

        private final EndpointChannel enumListQueryChannel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.enumListQuery);

        private final Deserializer<List<SimpleEnum>> enumListQueryDeserializer = _runtime.bodySerDe().deserializer(new TypeMarker<List<SimpleEnum>>() {
        });

        private final EndpointChannel optionalEnumQueryChannel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.optionalEnumQuery);

        private final Deserializer<Optional<SimpleEnum>> optionalEnumQueryDeserializer = _runtime.bodySerDe().deserializer(new TypeMarker<Optional<SimpleEnum>>() {
        });

        private final EndpointChannel enumHeaderChannel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.enumHeader);

        private final Deserializer<SimpleEnum> enumHeaderDeserializer = _runtime.bodySerDe().deserializer(new TypeMarker<SimpleEnum>() {
        });

        private final EndpointChannel aliasLongEndpointChannel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.aliasLongEndpoint);

        private final Deserializer<Optional<LongAlias>> aliasLongEndpointDeserializer = _runtime.bodySerDe().deserializer(new TypeMarker<Optional<LongAlias>>() {
        });

        private final EndpointChannel complexQueryParametersChannel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.complexQueryParameters);

        private final Deserializer<Void> complexQueryParametersDeserializer = _runtime.bodySerDe().emptyBodyDeserializer();

        private final Serializer<List<Optional<String>>> receiveListOfOptionalsSerializer = _runtime.bodySerDe().serializer(new TypeMarker<List<Optional<String>>>() {
        });

        private final EndpointChannel receiveListOfOptionalsChannel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.receiveListOfOptionals);

        private final Deserializer<Void> receiveListOfOptionalsDeserializer = _runtime.bodySerDe().emptyBodyDeserializer();

        private final Serializer<Set<Optional<String>>> receiveSetOfOptionalsSerializer = _runtime.bodySerDe().serializer(new TypeMarker<Set<Optional<String>>>() {
        });

        private final EndpointChannel receiveSetOfOptionalsChannel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.receiveSetOfOptionals);

        private final Deserializer<Void> receiveSetOfOptionalsDeserializer = _runtime.bodySerDe().emptyBodyDeserializer();

        private final Serializer<List<String>> receiveListOfStringsSerializer = _runtime.bodySerDe().serializer(new TypeMarker<List<String>>() {
        });

        private final EndpointChannel receiveListOfStringsChannel = _endpointChannelFactory.endpoint(DialogueEteEndpoints.receiveListOfStrings);

        private final Deserializer<Void> receiveListOfStringsDeserializer = _runtime.bodySerDe().emptyBodyDeserializer();

        @Override
        public ListenableFuture<String> string(AuthHeader authHeader) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            return _runtime.clients().call(stringChannel, _request.build(), stringDeserializer);
        }

        @Override
        public ListenableFuture<Integer> integer(AuthHeader authHeader) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            return _runtime.clients().call(integerChannel, _request.build(), integerDeserializer);
        }

        @Override
        public ListenableFuture<Double> double_(AuthHeader authHeader) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            return _runtime.clients().call(double_Channel, _request.build(), double_Deserializer);
        }

        @Override
        public ListenableFuture<Boolean> boolean_(AuthHeader authHeader) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            return _runtime.clients().call(boolean_Channel, _request.build(), boolean_Deserializer);
        }

        @Override
        public ListenableFuture<SafeLong> safelong(AuthHeader authHeader) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            return _runtime.clients().call(safelongChannel, _request.build(), safelongDeserializer);
        }

        @Override
        public ListenableFuture<ResourceIdentifier> rid(AuthHeader authHeader) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            return _runtime.clients().call(ridChannel, _request.build(), ridDeserializer);
        }

        @Override
        public ListenableFuture<BearerToken> bearertoken(AuthHeader authHeader) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            return _runtime.clients().call(bearertokenChannel, _request.build(), bearertokenDeserializer);
        }

        @Override
        public ListenableFuture<Optional<String>> optionalString(AuthHeader authHeader) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            return _runtime.clients().call(optionalStringChannel, _request.build(), optionalStringDeserializer);
        }

        @Override
        public ListenableFuture<Optional<String>> optionalEmpty(AuthHeader authHeader) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            return _runtime.clients().call(optionalEmptyChannel, _request.build(), optionalEmptyDeserializer);
        }

        @Override
        public ListenableFuture<OffsetDateTime> datetime(AuthHeader authHeader) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            return _runtime.clients().call(datetimeChannel, _request.build(), datetimeDeserializer);
        }

        @Override
        public ListenableFuture<InputStream> binary(AuthHeader authHeader) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            return _runtime.clients().call(binaryChannel, _request.build(), _runtime.bodySerDe().inputStreamDeserializer());
        }

        @Override
        public ListenableFuture<String> path(AuthHeader authHeader, String param) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            _request.putPathParams("param", _plainSerDe.serializeString(param));
            return _runtime.clients().call(pathChannel, _request.build(), pathDeserializer);
        }

        @Override
        public ListenableFuture<Long> externalLongPath(AuthHeader authHeader, long param) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            _request.putPathParams("param", Objects.toString(param));
            return _runtime.clients().call(externalLongPathChannel, _request.build(), externalLongPathDeserializer);
        }

        @Override
        public ListenableFuture<Optional<Long>> optionalExternalLongQuery(AuthHeader authHeader, Optional<Long> param) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            if (param.isPresent()) {
                _request.putQueryParams("param", Objects.toString(param.get()));
            }
            return _runtime.clients().call(optionalExternalLongQueryChannel, _request.build(), optionalExternalLongQueryDeserializer);
        }

        @Override
        public ListenableFuture<StringAliasExample> notNullBody(AuthHeader authHeader, StringAliasExample notNullBody) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            _request.body(notNullBodySerializer.serialize(notNullBody));
            return _runtime.clients().call(notNullBodyChannel, _request.build(), notNullBodyDeserializer);
        }

        @Override
        public ListenableFuture<StringAliasExample> aliasOne(AuthHeader authHeader, StringAliasExample queryParamName) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            _request.putQueryParams("queryParamName", _plainSerDe.serializeString(queryParamName.get()));
            return _runtime.clients().call(aliasOneChannel, _request.build(), aliasOneDeserializer);
        }

        @Override
        public ListenableFuture<StringAliasExample> optionalAliasOne(AuthHeader authHeader, Optional<StringAliasExample> queryParamName) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            if (queryParamName.isPresent()) {
                _request.putQueryParams("queryParamName", _plainSerDe.serializeString(queryParamName.get().get()));
            }
            return _runtime.clients().call(optionalAliasOneChannel, _request.build(), optionalAliasOneDeserializer);
        }

        @Override
        public ListenableFuture<NestedStringAliasExample> aliasTwo(AuthHeader authHeader, NestedStringAliasExample queryParamName) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            _request.putQueryParams("queryParamName", _plainSerDe.serializeString(queryParamName.get().get()));
            return _runtime.clients().call(aliasTwoChannel, _request.build(), aliasTwoDeserializer);
        }

        @Override
        public ListenableFuture<StringAliasExample> notNullBodyExternalImport(AuthHeader authHeader, StringAliasExample notNullBody) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            _request.body(notNullBodyExternalImportSerializer.serialize(notNullBody));
            return _runtime.clients().call(notNullBodyExternalImportChannel, _request.build(), notNullBodyExternalImportDeserializer);
        }

        @Override
        public ListenableFuture<Optional<StringAliasExample>> optionalBodyExternalImport(AuthHeader authHeader, Optional<StringAliasExample> body) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            _request.body(optionalBodyExternalImportSerializer.serialize(body));
            return _runtime.clients().call(optionalBodyExternalImportChannel, _request.build(), optionalBodyExternalImportDeserializer);
        }

        @Override
        public ListenableFuture<Optional<StringAliasExample>> optionalQueryExternalImport(AuthHeader authHeader, Optional<StringAliasExample> query) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            if (query.isPresent()) {
                _request.putQueryParams("query", Objects.toString(query.get()));
            }
            return _runtime.clients().call(optionalQueryExternalImportChannel, _request.build(), optionalQueryExternalImportDeserializer);
        }

        @Override
        public ListenableFuture<Void> noReturn(AuthHeader authHeader) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            return _runtime.clients().call(noReturnChannel, _request.build(), noReturnDeserializer);
        }

        @Override
        public ListenableFuture<SimpleEnum> enumQuery(AuthHeader authHeader, SimpleEnum queryParamName) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            _request.putQueryParams("queryParamName", Objects.toString(queryParamName));
            return _runtime.clients().call(enumQueryChannel, _request.build(), enumQueryDeserializer);
        }

        @Override
        public ListenableFuture<List<SimpleEnum>> enumListQuery(AuthHeader authHeader, List<SimpleEnum> queryParamName) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            for (SimpleEnum queryParamNameElement : queryParamName) {
                _request.putQueryParams("queryParamName", Objects.toString(queryParamNameElement));
            }
            return _runtime.clients().call(enumListQueryChannel, _request.build(), enumListQueryDeserializer);
        }

        @Override
        public ListenableFuture<Optional<SimpleEnum>> optionalEnumQuery(AuthHeader authHeader, Optional<SimpleEnum> queryParamName) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            if (queryParamName.isPresent()) {
                _request.putQueryParams("queryParamName", Objects.toString(queryParamName.get()));
            }
            return _runtime.clients().call(optionalEnumQueryChannel, _request.build(), optionalEnumQueryDeserializer);
        }

        @Override
        public ListenableFuture<SimpleEnum> enumHeader(AuthHeader authHeader, SimpleEnum headerParameter) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            _request.putHeaderParams("Custom-Header", Objects.toString(headerParameter));
            return _runtime.clients().call(enumHeaderChannel, _request.build(), enumHeaderDeserializer);
        }

        @Override
        public ListenableFuture<Optional<LongAlias>> aliasLongEndpoint(AuthHeader authHeader, Optional<LongAlias> input) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            if (input.isPresent()) {
                _request.putQueryParams("input", Objects.toString(input.get().get()));
            }
            return _runtime.clients().call(aliasLongEndpointChannel, _request.build(), aliasLongEndpointDeserializer);
        }

        @Override
        public ListenableFuture<Void> complexQueryParameters(AuthHeader authHeader, ResourceIdentifier datasetRid, Set<StringAliasExample> strings, Set<Long> longs, Set<Integer> ints) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            _request.putPathParams("datasetRid", _plainSerDe.serializeRid(datasetRid));
            for (StringAliasExample stringsElement : strings) {
                _request.putQueryParams("strings", _plainSerDe.serializeString(stringsElement.get()));
            }
            for (long longsElement : longs) {
                _request.putQueryParams("longs", Objects.toString(longsElement));
            }
            for (int intsElement : ints) {
                _request.putQueryParams("ints", _plainSerDe.serializeInteger(intsElement));
            }
            return _runtime.clients().call(complexQueryParametersChannel, _request.build(), complexQueryParametersDeserializer);
        }

        @Override
        public ListenableFuture<Void> receiveListOfOptionals(AuthHeader authHeader, List<Optional<String>> value) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            _request.body(receiveListOfOptionalsSerializer.serialize(value));
            return _runtime.clients().call(receiveListOfOptionalsChannel, _request.build(), receiveListOfOptionalsDeserializer);
        }

        @Override
        public ListenableFuture<Void> receiveSetOfOptionals(AuthHeader authHeader, Set<Optional<String>> value) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            _request.body(receiveSetOfOptionalsSerializer.serialize(value));
            return _runtime.clients().call(receiveSetOfOptionalsChannel, _request.build(), receiveSetOfOptionalsDeserializer);
        }

        @Override
        public ListenableFuture<Void> receiveListOfStrings(AuthHeader authHeader, List<String> value) {
            Request.Builder _request = Request.builder();
            _request.putHeaderParams("Authorization", authHeader.toString());
            _request.body(receiveListOfStringsSerializer.serialize(value));
            return _runtime.clients().call(receiveListOfStringsChannel, _request.build(), receiveListOfStringsDeserializer);
        }

        @Override
        public String toString() {
            return "EteServiceAsync{_endpointChannelFactory=" + _endpointChannelFactory + ", runtime=" + _runtime + '}';
        }
    };
}
Also used : Set(java.util.Set) TypeMarker(com.palantir.dialogue.TypeMarker) String(java.lang.String) ResourceIdentifier(com.palantir.ri.ResourceIdentifier) EndpointChannel(com.palantir.dialogue.EndpointChannel) List(java.util.List) Boolean(java.lang.Boolean) Void(java.lang.Void) Serializer(com.palantir.dialogue.Serializer) AuthHeader(com.palantir.tokens.auth.AuthHeader) Optional(java.util.Optional) InputStream(java.io.InputStream) Request(com.palantir.dialogue.Request) Double(java.lang.Double) BearerToken(com.palantir.tokens.auth.BearerToken) ClientEndpoint(com.palantir.conjure.java.lib.internal.ClientEndpoint) Endpoint(com.palantir.dialogue.Endpoint) Integer(java.lang.Integer) OffsetDateTime(java.time.OffsetDateTime) Deserializer(com.palantir.dialogue.Deserializer) SafeLong(com.palantir.conjure.java.lib.SafeLong) Long(java.lang.Long) SafeLong(com.palantir.conjure.java.lib.SafeLong) PlainSerDe(com.palantir.dialogue.PlainSerDe)

Example 18 with EndpointChannel

use of com.palantir.dialogue.EndpointChannel in project dialogue by palantir.

the class RetryingChannelTest method nonRetryableRequestBodyIsNotRetried.

@Test
public void nonRetryableRequestBodyIsNotRetried() throws ExecutionException, InterruptedException {
    when(channel.execute(any())).thenReturn(FAILED).thenReturn(SUCCESS);
    // One retry allows an initial request (not a retry) and a single retry.
    EndpointChannel retryer = new RetryingChannel(channel, TestEndpoint.POST, "my-channel", 1, Duration.ZERO, ClientConfiguration.ServerQoS.AUTOMATIC_RETRY, ClientConfiguration.RetryOnTimeout.DISABLED);
    ListenableFuture<Response> response = retryer.execute(Request.builder().body(new RequestBody() {

        @Override
        public void writeTo(OutputStream _output) {
        }

        @Override
        public String contentType() {
            return "application/octet-stream";
        }

        @Override
        public boolean repeatable() {
            return false;
        }

        @Override
        public void close() {
        }
    }).build());
    assertThat(response).isDone();
    assertThat(response).as("non-repeatable request bodies should not be retried").isEqualTo(FAILED);
    verify(channel, times(1)).execute(any());
}
Also used : TestResponse(com.palantir.dialogue.TestResponse) Response(com.palantir.dialogue.Response) OutputStream(java.io.OutputStream) EndpointChannel(com.palantir.dialogue.EndpointChannel) RequestBody(com.palantir.dialogue.RequestBody) Test(org.junit.jupiter.api.Test)

Example 19 with EndpointChannel

use of com.palantir.dialogue.EndpointChannel in project dialogue by palantir.

the class RetryingChannelTest method retries_500s_when_method_is_safe_and_idempotent.

@Test
public void retries_500s_when_method_is_safe_and_idempotent() throws Exception {
    when(channel.execute(any())).thenReturn(Futures.immediateFuture(new TestResponse().code(500))).thenReturn(Futures.immediateFuture(new TestResponse().code(200)));
    EndpointChannel retryer = new RetryingChannel(channel, TestEndpoint.GET, "my-channel", 3, Duration.ZERO, ClientConfiguration.ServerQoS.AUTOMATIC_RETRY, ClientConfiguration.RetryOnTimeout.DISABLED);
    ListenableFuture<Response> response = retryer.execute(REQUEST);
    assertThat(response).isDone();
    assertThat(response.get().code()).isEqualTo(200);
    verify(channel, times(2)).execute(REQUEST);
}
Also used : TestResponse(com.palantir.dialogue.TestResponse) Response(com.palantir.dialogue.Response) TestResponse(com.palantir.dialogue.TestResponse) EndpointChannel(com.palantir.dialogue.EndpointChannel) Test(org.junit.jupiter.api.Test)

Example 20 with EndpointChannel

use of com.palantir.dialogue.EndpointChannel in project dialogue by palantir.

the class RetryingChannelTest method retries_503s.

@Test
public void retries_503s() throws Exception {
    Response mockResponse = mock(Response.class);
    when(mockResponse.code()).thenReturn(503);
    when(channel.execute(any())).thenReturn(Futures.immediateFuture(mockResponse));
    EndpointChannel retryer = new RetryingChannel(channel, TestEndpoint.POST, "my-channel", 3, Duration.ZERO, ClientConfiguration.ServerQoS.AUTOMATIC_RETRY, ClientConfiguration.RetryOnTimeout.DISABLED);
    ListenableFuture<Response> response = retryer.execute(REQUEST);
    assertThat(response).isDone();
    assertThat(response.get()).as("After retries are exhausted the 503 response should be returned").isSameAs(mockResponse);
    verify(channel, times(4)).execute(REQUEST);
}
Also used : TestResponse(com.palantir.dialogue.TestResponse) Response(com.palantir.dialogue.Response) EndpointChannel(com.palantir.dialogue.EndpointChannel) Test(org.junit.jupiter.api.Test)

Aggregations

EndpointChannel (com.palantir.dialogue.EndpointChannel)32 Test (org.junit.jupiter.api.Test)28 Response (com.palantir.dialogue.Response)25 TestResponse (com.palantir.dialogue.TestResponse)25 Endpoint (com.palantir.dialogue.Endpoint)6 HttpMethod (com.palantir.dialogue.HttpMethod)4 Request (com.palantir.dialogue.Request)4 Channel (com.palantir.dialogue.Channel)3 RequestBody (com.palantir.dialogue.RequestBody)3 TestEndpoint (com.palantir.dialogue.TestEndpoint)3 IOException (java.io.IOException)3 OutputStream (java.io.OutputStream)3 List (java.util.List)3 Optional (java.util.Optional)3 Set (java.util.Set)3 ImmutableSet (com.google.common.collect.ImmutableSet)2 ByteStreams (com.google.common.io.ByteStreams)2 Futures (com.google.common.util.concurrent.Futures)2 SafeLong (com.palantir.conjure.java.lib.SafeLong)2 ClientEndpoint (com.palantir.conjure.java.lib.internal.ClientEndpoint)2