Github user tillrohrmann commented on a diff in the pull request:

    https://github.com/apache/flink/pull/6189#discussion_r197070198
  
    --- Diff: 
flink-runtime/src/main/java/org/apache/flink/runtime/rest/RestClient.java ---
    @@ -212,6 +271,86 @@ public void shutdown(Time timeout) {
                                executor);
        }
     
    +   private interface RequestProcessor<T> {
    +           T createRequest(HttpRequest request, ByteBuf jsonPayload) 
throws IOException;
    +
    +           void writeRequest(T body, Channel channel) throws IOException;
    +   }
    +
    +   private static final class DefaultProcessor implements 
RequestProcessor<HttpRequest> {
    +
    +           @Override
    +           public HttpRequest createRequest(HttpRequest request, ByteBuf 
jsonPayload) throws IOException {
    +                   return request;
    +           }
    +
    +           @Override
    +           public void writeRequest(HttpRequest body, Channel channel) 
throws IOException {
    +                   channel.writeAndFlush(body);
    +           }
    +   }
    +
    +   private static final class MultipartProcessor implements 
RequestProcessor<HttpPostRequestEncoder> {
    +
    +           private final Collection<FileUpload> fileUploads;
    +
    +           MultipartProcessor(Collection<FileUpload> fileUploads) {
    +                   this.fileUploads = fileUploads;
    +           }
    +
    +           @Override
    +           public HttpPostRequestEncoder createRequest(HttpRequest 
httpRequest, ByteBuf jsonPayload) throws IOException {
    --- End diff --
    
    Move this method out to `RestClient` to generate the 
`HttpPostRequestEncoder` with which we then create a `MultipartRequest` 
instance.


---

Reply via email to