Browse Source

Change SseEvent#mimeType to SseEvent#mediaType

pull/1111/head
Sebastien Deleuze 10 years ago
parent
commit
3fe87ee225
  1. 9
      spring-web-reactive/src/main/java/org/springframework/http/codec/SseEventEncoder.java
  2. 24
      spring-web-reactive/src/main/java/org/springframework/web/reactive/sse/SseEvent.java

9
spring-web-reactive/src/main/java/org/springframework/http/codec/SseEventEncoder.java

@ -31,6 +31,7 @@ import org.springframework.core.codec.support.AbstractEncoder;
import org.springframework.core.io.buffer.DataBuffer; import org.springframework.core.io.buffer.DataBuffer;
import org.springframework.core.io.buffer.DataBufferFactory; import org.springframework.core.io.buffer.DataBufferFactory;
import org.springframework.core.io.buffer.FlushingDataBuffer; import org.springframework.core.io.buffer.FlushingDataBuffer;
import org.springframework.http.MediaType;
import org.springframework.util.Assert; import org.springframework.util.Assert;
import org.springframework.util.MimeType; import org.springframework.util.MimeType;
import org.springframework.web.reactive.sse.SseEvent; import org.springframework.web.reactive.sse.SseEvent;
@ -87,8 +88,8 @@ public class SseEventEncoder extends AbstractEncoder<Object> {
Object data = event.getData(); Object data = event.getData();
Flux<DataBuffer> dataBuffer = Flux.empty(); Flux<DataBuffer> dataBuffer = Flux.empty();
MimeType mimeType = (event.getMimeType() == null ? MediaType mediaType = (event.getMediaType() == null ?
new MimeType("*") : event.getMimeType()); MediaType.ALL : event.getMediaType());
if (data != null) { if (data != null) {
sb.append("data:"); sb.append("data:");
if (data instanceof String) { if (data instanceof String) {
@ -97,13 +98,13 @@ public class SseEventEncoder extends AbstractEncoder<Object> {
else { else {
Optional<Encoder<?>> encoder = dataEncoders Optional<Encoder<?>> encoder = dataEncoders
.stream() .stream()
.filter(e -> e.canEncode(ResolvableType.forClass(data.getClass()), mimeType)) .filter(e -> e.canEncode(ResolvableType.forClass(data.getClass()), mediaType))
.findFirst(); .findFirst();
if (encoder.isPresent()) { if (encoder.isPresent()) {
dataBuffer = ((Encoder<Object>)encoder.get()) dataBuffer = ((Encoder<Object>)encoder.get())
.encode(Mono.just(data), bufferFactory, .encode(Mono.just(data), bufferFactory,
ResolvableType.forClass(data.getClass()), mimeType) ResolvableType.forClass(data.getClass()), mediaType)
.concatWith(encodeString("\n", bufferFactory)); .concatWith(encodeString("\n", bufferFactory));
} }
else { else {

24
spring-web-reactive/src/main/java/org/springframework/web/reactive/sse/SseEvent.java

@ -16,8 +16,8 @@
package org.springframework.web.reactive.sse; package org.springframework.web.reactive.sse;
import org.springframework.http.MediaType;
import org.springframework.http.codec.SseEventEncoder; import org.springframework.http.codec.SseEventEncoder;
import org.springframework.util.MimeType;
/** /**
* Represent a Server-Sent Event. * Represent a Server-Sent Event.
@ -27,7 +27,7 @@ import org.springframework.util.MimeType;
* *
* @author Sebastien Deleuze * @author Sebastien Deleuze
* @see SseEventEncoder * @see SseEventEncoder
* @see <a href="https://www.w3.org/TR/eventsource/">Server-Sent Events W3C recommandation</a> * @see <a href="https://www.w3.org/TR/eventsource/">Server-Sent Events W3C recommendation</a>
*/ */
public class SseEvent { public class SseEvent {
@ -37,7 +37,7 @@ public class SseEvent {
private Object data; private Object data;
private MimeType mimeType; private MediaType mediaType;
private Long reconnectTime; private Long reconnectTime;
@ -59,9 +59,9 @@ public class SseEvent {
/** /**
* Create an instance with the provided {@code data} and {@code mediaType}. * Create an instance with the provided {@code data} and {@code mediaType}.
*/ */
public SseEvent(Object data, MimeType mimeType) { public SseEvent(Object data, MediaType mediaType) {
this.data = data; this.data = data;
this.mimeType = mimeType; this.mediaType = mediaType;
} }
/** /**
@ -102,7 +102,7 @@ public class SseEvent {
* - Turn multiline line {@code String} to multiple {@code data} fields * - Turn multiline line {@code String} to multiple {@code data} fields
* - Serialize other {@code Object} as JSON * - Serialize other {@code Object} as JSON
* *
* @see #setMimeType(MimeType) * @see #setMediaType(MediaType)
*/ */
public void setData(Object data) { public void setData(Object data) {
this.data = data; this.data = data;
@ -116,19 +116,19 @@ public class SseEvent {
} }
/** /**
* Set the {@link MimeType} used to serialize the {@code data}. * Set the {@link MediaType} used to serialize the {@code data}.
* {@link SseEventEncoder} should be configured with the relevant encoder to be * {@link SseEventEncoder} should be configured with the relevant encoder to be
* able to serialize it. * able to serialize it.
*/ */
public void setMimeType(MimeType mimeType) { public void setMediaType(MediaType mediaType) {
this.mimeType = mimeType; this.mediaType = mediaType;
} }
/** /**
* @see #setMimeType(MimeType) * @see #setMediaType(MediaType)
*/ */
public MimeType getMimeType() { public MediaType getMediaType() {
return mimeType; return this.mediaType;
} }
/** /**

Loading…
Cancel
Save