@Override protected void extendTypedReaders(List<HttpMessageReader<?>> typedReaders) { if (synchronossMultipartPresent) { boolean enable = isEnableLoggingRequestDetails(); SynchronossPartHttpMessageReader partReader = new SynchronossPartHttpMessageReader(); partReader.setEnableLoggingRequestDetails(enable); typedReaders.add(partReader); MultipartHttpMessageReader reader = new MultipartHttpMessageReader(partReader); reader.setEnableLoggingRequestDetails(enable); typedReaders.add(reader); } }
@Override protected void extendTypedReaders(List<HttpMessageReader<?>> typedReaders) { if (synchronossMultipartPresent) { boolean enable = isEnableLoggingRequestDetails(); SynchronossPartHttpMessageReader partReader = new SynchronossPartHttpMessageReader(); partReader.setEnableLoggingRequestDetails(enable); typedReaders.add(partReader); MultipartHttpMessageReader reader = new MultipartHttpMessageReader(partReader); reader.setEnableLoggingRequestDetails(enable); typedReaders.add(reader); } }
@Before public void createContext() { final List<HttpMessageReader<?>> messageReaders = new ArrayList<>(); messageReaders.add(new DecoderHttpMessageReader<>(new ByteBufferDecoder())); messageReaders.add(new DecoderHttpMessageReader<>(StringDecoder.allMimeTypes())); messageReaders.add(new DecoderHttpMessageReader<>(new Jaxb2XmlDecoder())); messageReaders.add(new DecoderHttpMessageReader<>(new Jackson2JsonDecoder())); messageReaders.add(new FormHttpMessageReader()); SynchronossPartHttpMessageReader partReader = new SynchronossPartHttpMessageReader(); messageReaders.add(partReader); messageReaders.add(new MultipartHttpMessageReader(partReader)); messageReaders.add(new FormHttpMessageReader()); this.context = new BodyExtractor.Context() { @Override public List<HttpMessageReader<?>> messageReaders() { return messageReaders; } @Override public Optional<ServerHttpResponse> serverResponse() { return serverResponse; } @Override public Map<String, Object> hints() { return hints; } }; this.hints = new HashMap<String, Object>(); }
private MultiValueMap<String, Part> parse(Map<String, Object> hints) { MediaType contentType = this.response.getHeaders().getContentType(); assertNotNull("No boundary found", contentType.getParameter("boundary")); // see if Synchronoss NIO Multipart can read what we wrote SynchronossPartHttpMessageReader synchronossReader = new SynchronossPartHttpMessageReader(); MultipartHttpMessageReader reader = new MultipartHttpMessageReader(synchronossReader); MockServerHttpRequest request = MockServerHttpRequest.post("/") .contentType(MediaType.parseMediaType(contentType.toString())) .body(this.response.getBody()); ResolvableType elementType = ResolvableType.forClassWithGenerics( MultiValueMap.class, String.class, Part.class); MultiValueMap<String, Part> result = reader.readMono(elementType, request, hints) .block(Duration.ofSeconds(5)); assertNotNull(result); return result; }
private List<OperationRequestPart> extractRequestParts(ExchangeResult result) { if (!ClassUtils.isPresent( "org.synchronoss.cloud.nio.multipart.NioMultipartParserListener", getClass().getClassLoader())) { return Collections.emptyList(); } return new MultipartHttpMessageReader(new SynchronossPartHttpMessageReader()) .readMono(ResolvableType.forClass(Part.class), new ExchangeResultReactiveHttpInputMessage(result), Collections.emptyMap()) .onErrorReturn(new LinkedMultiValueMap<>()).block().values().stream() .flatMap((parts) -> parts.stream().map(this::createOperationRequestPart)) .collect(Collectors.toList()); }
@Override protected void extendTypedReaders(List<HttpMessageReader<?>> typedReaders) { if (synchronossMultipartPresent) { SynchronossPartHttpMessageReader partReader = new SynchronossPartHttpMessageReader(); typedReaders.add(partReader); typedReaders.add(new MultipartHttpMessageReader(partReader)); } }
@Override protected void extendTypedReaders(List<HttpMessageReader<?>> typedReaders) { if (synchronossMultipartPresent) { boolean enable = isEnableLoggingRequestDetails(); SynchronossPartHttpMessageReader partReader = new SynchronossPartHttpMessageReader(); partReader.setEnableLoggingRequestDetails(enable); typedReaders.add(partReader); MultipartHttpMessageReader reader = new MultipartHttpMessageReader(partReader); reader.setEnableLoggingRequestDetails(enable); typedReaders.add(reader); } }
@Override protected void register(GenericApplicationContext context, CodecConfigurer configurer) { configurer.customCodecs().writer(new MultipartHttpMessageWriter()); if (!isClientCodec) { configurer.customCodecs().reader(new MultipartHttpMessageReader(new SynchronossPartHttpMessageReader())); } } }