return Flux.error(new EncodingException( "Could not marshal " + value.getClass() + " to XML", ex));
throw new EncodingException("JSON encoding error: " + ex.getOriginalMessage(), ex);
@Override public Flux<DataBuffer> encode(Publisher<? extends CharSequence> inputStream, DataBufferFactory bufferFactory, ResolvableType elementType, @Nullable MimeType mimeType, @Nullable Map<String, Object> hints) { Charset charset = getCharset(mimeType); return Flux.from(inputStream).map(charSequence -> { if (!Hints.isLoggingSuppressed(hints)) { LogFormatUtils.traceDebug(logger, traceOn -> { String formatted = LogFormatUtils.formatValue(charSequence, !traceOn); return Hints.getLogPrefix(hints) + "Writing " + formatted; }); } boolean release = true; int capacity = calculateCapacity(charSequence, charset); DataBuffer dataBuffer = bufferFactory.allocateBuffer(capacity); try { dataBuffer.write(charSequence, charset); release = false; } catch (CoderMalfunctionError ex) { throw new EncodingException("String encoding error: " + ex.getMessage(), ex); } finally { if (release) { DataBufferUtils.release(dataBuffer); } } return dataBuffer; }); }
.flatMapMany(region -> { if (!region.getResource().isReadable()) { return Flux.error(new EncodingException("Resource " + region.getResource() + " is not readable")); concatMap(region -> { if (!region.getResource().isReadable()) { return Flux.error(new EncodingException("Resource " + region.getResource() + " is not readable"));
@Override public Flux<DataBuffer> encode(Publisher<? extends CharSequence> inputStream, DataBufferFactory bufferFactory, ResolvableType elementType, @Nullable MimeType mimeType, @Nullable Map<String, Object> hints) { Charset charset = getCharset(mimeType); return Flux.from(inputStream).map(charSequence -> { if (!Hints.isLoggingSuppressed(hints)) { LogFormatUtils.traceDebug(logger, traceOn -> { String formatted = LogFormatUtils.formatValue(charSequence, !traceOn); return Hints.getLogPrefix(hints) + "Writing " + formatted; }); } boolean release = true; int capacity = calculateCapacity(charSequence, charset); DataBuffer dataBuffer = bufferFactory.allocateBuffer(capacity); try { dataBuffer.write(charSequence, charset); release = false; } catch (CoderMalfunctionError ex) { throw new EncodingException("String encoding error: " + ex.getMessage(), ex); } finally { if (release) { DataBufferUtils.release(dataBuffer); } } return dataBuffer; }); }
return Flux.error(new EncodingException( "Could not marshal " + value.getClass() + " to XML", ex));
throw new EncodingException("JSON encoding error: " + ex.getOriginalMessage(), ex);
.flatMapMany(region -> { if (!region.getResource().isReadable()) { return Flux.error(new EncodingException("Resource " + region.getResource() + " is not readable")); concatMap(region -> { if (!region.getResource().isReadable()) { return Flux.error(new EncodingException("Resource " + region.getResource() + " is not readable"));
@Override protected Flux<DataBuffer> encode(Object value, DataBufferFactory dataBufferFactory, ResolvableType type, @Nullable MimeType mimeType, @Nullable Map<String, Object> hints) { try { DataBuffer buffer = dataBufferFactory.allocateBuffer(1024); OutputStream outputStream = buffer.asOutputStream(); Class<?> clazz = ClassUtils.getUserClass(value); Marshaller marshaller = this.jaxbContexts.createMarshaller(clazz); marshaller.setProperty(Marshaller.JAXB_ENCODING, StandardCharsets.UTF_8.name()); marshaller.marshal(value, outputStream); return Flux.just(buffer); } catch (MarshalException ex) { return Flux.error(new EncodingException("Could not marshal " + value.getClass() + " to XML", ex)); } catch (JAXBException ex) { return Flux.error(new CodecException("Invalid JAXB configuration", ex)); } }
private DataBuffer encodeValue(Object value, @Nullable MimeType mimeType, DataBufferFactory bufferFactory, ResolvableType elementType, @Nullable Map<String, Object> hints, JsonEncoding encoding) { JavaType javaType = getJavaType(elementType.getType(), null); Class<?> jsonView = (hints != null ? (Class<?>) hints.get(Jackson2CodecSupport.JSON_VIEW_HINT) : null); ObjectWriter writer = (jsonView != null ? getObjectMapper().writerWithView(jsonView) : getObjectMapper().writer()); if (javaType.isContainerType()) { writer = writer.forType(javaType); } writer = customizeWriter(writer, mimeType, elementType, hints); DataBuffer buffer = bufferFactory.allocateBuffer(); OutputStream outputStream = buffer.asOutputStream(); try { JsonGenerator generator = getObjectMapper().getFactory().createGenerator(outputStream, encoding); writer.writeValue(generator, value); } catch (InvalidDefinitionException ex) { throw new CodecException("Type definition error: " + ex.getType(), ex); } catch (JsonProcessingException ex) { throw new EncodingException("JSON encoding error: " + ex.getOriginalMessage(), ex); } catch (IOException ex) { throw new IllegalStateException("Unexpected I/O error while writing to data buffer", ex); } return buffer; }
throw new EncodingException("JSON encoding error: " + ex.getOriginalMessage(), ex);
return Flux.error(new EncodingException( "Could not marshal " + value.getClass() + " to XML", ex));
@Override public Flux<DataBuffer> encode(Publisher<? extends CharSequence> inputStream, DataBufferFactory bufferFactory, ResolvableType elementType, @Nullable MimeType mimeType, @Nullable Map<String, Object> hints) { Charset charset = getCharset(mimeType); return Flux.from(inputStream).map(charSequence -> { if (!Hints.isLoggingSuppressed(hints)) { LogFormatUtils.traceDebug(logger, traceOn -> { String formatted = LogFormatUtils.formatValue(charSequence, !traceOn); return Hints.getLogPrefix(hints) + "Writing " + formatted; }); } boolean release = true; int capacity = calculateCapacity(charSequence, charset); DataBuffer dataBuffer = bufferFactory.allocateBuffer(capacity); try { dataBuffer.write(charSequence, charset); release = false; } catch (CoderMalfunctionError ex) { throw new EncodingException("String encoding error: " + ex.getMessage(), ex); } finally { if (release) { DataBufferUtils.release(dataBuffer); } } return dataBuffer; }); }
.flatMapMany(region -> { if (!region.getResource().isReadable()) { return Flux.error(new EncodingException("Resource " + region.getResource() + " is not readable")); concatMap(region -> { if (!region.getResource().isReadable()) { return Flux.error(new EncodingException("Resource " + region.getResource() + " is not readable"));
.flatMapMany(region -> { if (!region.getResource().isReadable()) { return Flux.error(new EncodingException("Resource " + region.getResource() + " is not readable")); concatMap(region -> { if (!region.getResource().isReadable()) { return Flux.error(new EncodingException("Resource " + region.getResource() + " is not readable"));