Revise encoding steps towards use of JDK Charset and StandardCharsets
Issue: SPR-14492
This commit is contained in:
@@ -22,6 +22,7 @@ import java.io.StringWriter;
|
||||
import java.io.Writer;
|
||||
import java.lang.reflect.Type;
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Arrays;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
@@ -70,7 +71,7 @@ public class MappingJackson2MessageConverter extends AbstractMessageConverter {
|
||||
* the {@code application/json} MIME type with {@code UTF-8} character set.
|
||||
*/
|
||||
public MappingJackson2MessageConverter() {
|
||||
super(new MimeType("application", "json", Charset.forName("UTF-8")));
|
||||
super(new MimeType("application", "json", StandardCharsets.UTF_8));
|
||||
initObjectMapper();
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package org.springframework.messaging.converter;
|
||||
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
import org.springframework.messaging.Message;
|
||||
import org.springframework.messaging.MessageHeaders;
|
||||
@@ -35,7 +36,7 @@ public class StringMessageConverter extends AbstractMessageConverter {
|
||||
|
||||
|
||||
public StringMessageConverter() {
|
||||
this(Charset.forName("UTF-8"));
|
||||
this(StandardCharsets.UTF_8);
|
||||
}
|
||||
|
||||
public StringMessageConverter(Charset defaultCharset) {
|
||||
|
||||
@@ -19,6 +19,7 @@ package org.springframework.messaging.simp.stomp;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -47,13 +48,10 @@ import org.springframework.util.MultiValueMap;
|
||||
*/
|
||||
public class StompDecoder {
|
||||
|
||||
static final Charset UTF8_CHARSET = Charset.forName("UTF-8");
|
||||
|
||||
static final byte[] HEARTBEAT_PAYLOAD = new byte[] {'\n'};
|
||||
|
||||
private static final Log logger = LogFactory.getLog(StompDecoder.class);
|
||||
|
||||
|
||||
private MessageHeaderInitializer headerInitializer;
|
||||
|
||||
|
||||
@@ -202,7 +200,7 @@ public class StompDecoder {
|
||||
while (buffer.remaining() > 0 && !tryConsumeEndOfLine(buffer)) {
|
||||
command.write(buffer.get());
|
||||
}
|
||||
return new String(command.toByteArray(), UTF8_CHARSET);
|
||||
return new String(command.toByteArray(), StandardCharsets.UTF_8);
|
||||
}
|
||||
|
||||
private void readHeaders(ByteBuffer buffer, StompHeaderAccessor headerAccessor) {
|
||||
@@ -217,7 +215,7 @@ public class StompDecoder {
|
||||
headerStream.write(buffer.get());
|
||||
}
|
||||
if (headerStream.size() > 0 && headerComplete) {
|
||||
String header = new String(headerStream.toByteArray(), UTF8_CHARSET);
|
||||
String header = new String(headerStream.toByteArray(), StandardCharsets.UTF_8);
|
||||
int colonIndex = header.indexOf(':');
|
||||
if (colonIndex <= 0) {
|
||||
if (buffer.remaining() > 0) {
|
||||
|
||||
@@ -19,6 +19,7 @@ package org.springframework.messaging.simp.stomp;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -81,7 +82,7 @@ public final class StompEncoder {
|
||||
else {
|
||||
StompCommand command = StompHeaderAccessor.getCommand(headers);
|
||||
Assert.notNull(command, "Missing STOMP command: " + headers);
|
||||
output.write(command.toString().getBytes(StompDecoder.UTF8_CHARSET));
|
||||
output.write(command.toString().getBytes(StandardCharsets.UTF_8));
|
||||
output.write(LF);
|
||||
writeHeaders(command, headers, payload, output);
|
||||
output.write(LF);
|
||||
@@ -132,15 +133,15 @@ public final class StompEncoder {
|
||||
}
|
||||
if (command.requiresContentLength()) {
|
||||
int contentLength = payload.length;
|
||||
output.write("content-length:".getBytes(StompDecoder.UTF8_CHARSET));
|
||||
output.write(Integer.toString(contentLength).getBytes(StompDecoder.UTF8_CHARSET));
|
||||
output.write("content-length:".getBytes(StandardCharsets.UTF_8));
|
||||
output.write(Integer.toString(contentLength).getBytes(StandardCharsets.UTF_8));
|
||||
output.write(LF);
|
||||
}
|
||||
}
|
||||
|
||||
private byte[] encodeHeaderString(String input, boolean escape) {
|
||||
String inputToUse = (escape ? escape(input) : input);
|
||||
return inputToUse.getBytes(StompDecoder.UTF8_CHARSET);
|
||||
return inputToUse.getBytes(StandardCharsets.UTF_8);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package org.springframework.messaging.simp.stomp;
|
||||
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
@@ -441,7 +442,7 @@ public class StompHeaderAccessor extends SimpMessageHeaderAccessor {
|
||||
return contentType;
|
||||
}
|
||||
Charset charset = getContentType().getCharset();
|
||||
charset = (charset != null ? charset : StompDecoder.UTF8_CHARSET);
|
||||
charset = (charset != null ? charset : StandardCharsets.UTF_8);
|
||||
return (bytes.length < 80) ?
|
||||
contentType + " payload=" + new String(bytes, charset) :
|
||||
contentType + " payload=" + new String(Arrays.copyOf(bytes, 80), charset) + "...(truncated)";
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package org.springframework.messaging.support;
|
||||
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
@@ -115,7 +116,7 @@ import org.springframework.util.StringUtils;
|
||||
*/
|
||||
public class MessageHeaderAccessor {
|
||||
|
||||
public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");
|
||||
public static final Charset DEFAULT_CHARSET = StandardCharsets.UTF_8;
|
||||
|
||||
private static final MimeType[] READABLE_MIME_TYPES = new MimeType[] {
|
||||
MimeTypeUtils.APPLICATION_JSON, MimeTypeUtils.APPLICATION_XML,
|
||||
|
||||
@@ -19,6 +19,7 @@ package org.springframework.messaging.converter;
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@@ -44,19 +45,16 @@ import static org.junit.Assert.*;
|
||||
*/
|
||||
public class MappingJackson2MessageConverterTests {
|
||||
|
||||
private static Charset UTF_8 = Charset.forName("UTF-8");
|
||||
|
||||
|
||||
@Test
|
||||
public void defaultConstructor() {
|
||||
MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
|
||||
assertThat(converter.getSupportedMimeTypes(), contains(new MimeType("application", "json", UTF_8)));
|
||||
assertThat(converter.getSupportedMimeTypes(), contains(new MimeType("application", "json", StandardCharsets.UTF_8)));
|
||||
assertFalse(converter.getObjectMapper().getDeserializationConfig().isEnabled(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES));
|
||||
}
|
||||
|
||||
@Test // SPR-12724
|
||||
public void mimetypeParametrizedConstructor() {
|
||||
MimeType mimetype = new MimeType("application", "xml", UTF_8);
|
||||
MimeType mimetype = new MimeType("application", "xml", StandardCharsets.UTF_8);
|
||||
MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter(mimetype);
|
||||
assertThat(converter.getSupportedMimeTypes(), contains(mimetype));
|
||||
assertFalse(converter.getObjectMapper().getDeserializationConfig().isEnabled(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES));
|
||||
@@ -64,8 +62,8 @@ public class MappingJackson2MessageConverterTests {
|
||||
|
||||
@Test // SPR-12724
|
||||
public void mimetypesParametrizedConstructor() {
|
||||
MimeType jsonMimetype = new MimeType("application", "json", UTF_8);
|
||||
MimeType xmlMimetype = new MimeType("application", "xml", UTF_8);
|
||||
MimeType jsonMimetype = new MimeType("application", "json", StandardCharsets.UTF_8);
|
||||
MimeType xmlMimetype = new MimeType("application", "xml", StandardCharsets.UTF_8);
|
||||
MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter(jsonMimetype, xmlMimetype);
|
||||
assertThat(converter.getSupportedMimeTypes(), contains(jsonMimetype, xmlMimetype));
|
||||
assertFalse(converter.getObjectMapper().getDeserializationConfig().isEnabled(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES));
|
||||
@@ -75,7 +73,7 @@ public class MappingJackson2MessageConverterTests {
|
||||
public void fromMessage() throws Exception {
|
||||
MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
|
||||
String payload = "{\"bytes\":\"AQI=\",\"array\":[\"Foo\",\"Bar\"],\"number\":42,\"string\":\"Foo\",\"bool\":true,\"fraction\":42.0}";
|
||||
Message<?> message = MessageBuilder.withPayload(payload.getBytes(UTF_8)).build();
|
||||
Message<?> message = MessageBuilder.withPayload(payload.getBytes(StandardCharsets.UTF_8)).build();
|
||||
MyBean actual = (MyBean) converter.fromMessage(message, MyBean.class);
|
||||
|
||||
assertEquals("Foo", actual.getString());
|
||||
@@ -91,7 +89,7 @@ public class MappingJackson2MessageConverterTests {
|
||||
MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
|
||||
String payload = "{\"bytes\":\"AQI=\",\"array\":[\"Foo\",\"Bar\"],"
|
||||
+ "\"number\":42,\"string\":\"Foo\",\"bool\":true,\"fraction\":42.0}";
|
||||
Message<?> message = MessageBuilder.withPayload(payload.getBytes(UTF_8)).build();
|
||||
Message<?> message = MessageBuilder.withPayload(payload.getBytes(StandardCharsets.UTF_8)).build();
|
||||
@SuppressWarnings("unchecked")
|
||||
HashMap<String, Object> actual = (HashMap<String, Object>) converter.fromMessage(message, HashMap.class);
|
||||
|
||||
@@ -107,7 +105,7 @@ public class MappingJackson2MessageConverterTests {
|
||||
public void fromMessageInvalidJson() throws Exception {
|
||||
MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
|
||||
String payload = "FooBar";
|
||||
Message<?> message = MessageBuilder.withPayload(payload.getBytes(UTF_8)).build();
|
||||
Message<?> message = MessageBuilder.withPayload(payload.getBytes(StandardCharsets.UTF_8)).build();
|
||||
converter.fromMessage(message, MyBean.class);
|
||||
}
|
||||
|
||||
@@ -115,7 +113,7 @@ public class MappingJackson2MessageConverterTests {
|
||||
public void fromMessageValidJsonWithUnknownProperty() throws IOException {
|
||||
MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
|
||||
String payload = "{\"string\":\"string\",\"unknownProperty\":\"value\"}";
|
||||
Message<?> message = MessageBuilder.withPayload(payload.getBytes(UTF_8)).build();
|
||||
Message<?> message = MessageBuilder.withPayload(payload.getBytes(StandardCharsets.UTF_8)).build();
|
||||
MyBean myBean = (MyBean)converter.fromMessage(message, MyBean.class);
|
||||
assertEquals("string", myBean.getString());
|
||||
}
|
||||
@@ -132,7 +130,7 @@ public class MappingJackson2MessageConverterTests {
|
||||
payload.setBytes(new byte[]{0x1, 0x2});
|
||||
|
||||
Message<?> message = converter.toMessage(payload, null);
|
||||
String actual = new String((byte[]) message.getPayload(), UTF_8);
|
||||
String actual = new String((byte[]) message.getPayload(), StandardCharsets.UTF_8);
|
||||
|
||||
assertTrue(actual.contains("\"string\":\"Foo\""));
|
||||
assertTrue(actual.contains("\"number\":42"));
|
||||
@@ -140,7 +138,7 @@ public class MappingJackson2MessageConverterTests {
|
||||
assertTrue(actual.contains("\"array\":[\"Foo\",\"Bar\"]"));
|
||||
assertTrue(actual.contains("\"bool\":true"));
|
||||
assertTrue(actual.contains("\"bytes\":\"AQI=\""));
|
||||
assertEquals("Invalid content-type", new MimeType("application", "json", UTF_8),
|
||||
assertEquals("Invalid content-type", new MimeType("application", "json", StandardCharsets.UTF_8),
|
||||
message.getHeaders().get(MessageHeaders.CONTENT_TYPE, MimeType.class));
|
||||
}
|
||||
|
||||
@@ -184,7 +182,7 @@ public class MappingJackson2MessageConverterTests {
|
||||
Method method = getClass().getDeclaredMethod("jsonViewResponse");
|
||||
MethodParameter returnType = new MethodParameter(method, -1);
|
||||
Message<?> message = converter.toMessage(jsonViewResponse(), new MessageHeaders(map), returnType);
|
||||
String actual = new String((byte[]) message.getPayload(), UTF_8);
|
||||
String actual = new String((byte[]) message.getPayload(), StandardCharsets.UTF_8);
|
||||
|
||||
assertThat(actual, containsString("\"withView1\":\"with\""));
|
||||
assertThat(actual, containsString("\"withView2\":\"with\""));
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
package org.springframework.messaging.converter;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
|
||||
import org.junit.Before;
|
||||
@@ -27,17 +27,15 @@ import org.springframework.messaging.Message;
|
||||
import org.springframework.messaging.support.MessageBuilder;
|
||||
import org.springframework.oxm.jaxb.Jaxb2Marshaller;
|
||||
|
||||
import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual;
|
||||
import static org.junit.Assert.*;
|
||||
import static org.custommonkey.xmlunit.XMLAssert.*;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
/**
|
||||
* @author Arjen Poutsma
|
||||
*/
|
||||
public class MarshallingMessageConverterTests {
|
||||
|
||||
private static Charset UTF_8 = Charset.forName("UTF-8");
|
||||
|
||||
|
||||
private MarshallingMessageConverter converter;
|
||||
|
||||
|
||||
@@ -50,10 +48,11 @@ public class MarshallingMessageConverterTests {
|
||||
this.converter = new MarshallingMessageConverter(marshaller);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void fromMessage() throws Exception {
|
||||
String payload = "<myBean><name>Foo</name></myBean>";
|
||||
Message<?> message = MessageBuilder.withPayload(payload.getBytes(UTF_8)).build();
|
||||
Message<?> message = MessageBuilder.withPayload(payload.getBytes(StandardCharsets.UTF_8)).build();
|
||||
MyBean actual = (MyBean) this.converter.fromMessage(message, MyBean.class);
|
||||
|
||||
assertNotNull(actual);
|
||||
@@ -63,14 +62,14 @@ public class MarshallingMessageConverterTests {
|
||||
@Test(expected = MessageConversionException.class)
|
||||
public void fromMessageInvalidXml() throws Exception {
|
||||
String payload = "<myBean><name>Foo</name><myBean>";
|
||||
Message<?> message = MessageBuilder.withPayload(payload.getBytes(UTF_8)).build();
|
||||
Message<?> message = MessageBuilder.withPayload(payload.getBytes(StandardCharsets.UTF_8)).build();
|
||||
this.converter.fromMessage(message, MyBean.class);
|
||||
}
|
||||
|
||||
@Test(expected = MessageConversionException.class)
|
||||
public void fromMessageValidXmlWithUnknownProperty() throws IOException {
|
||||
String payload = "<myBean><age>42</age><myBean>";
|
||||
Message<?> message = MessageBuilder.withPayload(payload.getBytes(UTF_8)).build();
|
||||
Message<?> message = MessageBuilder.withPayload(payload.getBytes(StandardCharsets.UTF_8)).build();
|
||||
this.converter.fromMessage(message, MyBean.class);
|
||||
}
|
||||
|
||||
@@ -81,7 +80,7 @@ public class MarshallingMessageConverterTests {
|
||||
|
||||
Message<?> message = this.converter.toMessage(payload, null);
|
||||
assertNotNull(message);
|
||||
String actual = new String((byte[]) message.getPayload(), UTF_8);
|
||||
String actual = new String((byte[]) message.getPayload(), StandardCharsets.UTF_8);
|
||||
|
||||
assertXMLEqual("<myBean><name>Foo</name></myBean>", actual);
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package org.springframework.messaging.converter;
|
||||
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -73,16 +74,13 @@ public class StringMessageConverterTests {
|
||||
String payload = "H\u00e9llo W\u00f6rld";
|
||||
Message<byte[]> message = MessageBuilder.withPayload(payload.getBytes(iso88591))
|
||||
.setHeader(MessageHeaders.CONTENT_TYPE, new MimeType("text", "plain", iso88591)).build();
|
||||
|
||||
assertEquals(payload, this.converter.fromMessage(message, String.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void fromMessageDefaultCharset() {
|
||||
Charset utf8 = Charset.forName("UTF-8");
|
||||
String payload = "H\u00e9llo W\u00f6rld";
|
||||
Message<byte[]> message = MessageBuilder.withPayload(payload.getBytes(utf8)).build();
|
||||
|
||||
Message<byte[]> message = MessageBuilder.withPayload(payload.getBytes(StandardCharsets.UTF_8)).build();
|
||||
assertEquals(payload, this.converter.fromMessage(message, String.class));
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
package org.springframework.messaging.core;
|
||||
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@@ -141,7 +141,7 @@ public class MessageSendingTemplateTests {
|
||||
|
||||
MessageHeaders actual = this.template.message.getHeaders();
|
||||
assertSame(messageHeaders, actual);
|
||||
assertEquals(new MimeType("text", "plain", Charset.forName("UTF-8")), actual.get(MessageHeaders.CONTENT_TYPE));
|
||||
assertEquals(new MimeType("text", "plain", StandardCharsets.UTF_8), actual.get(MessageHeaders.CONTENT_TYPE));
|
||||
assertEquals("bar", actual.get("foo"));
|
||||
}
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ import static org.springframework.messaging.support.MessageHeaderAccessor.*;
|
||||
*/
|
||||
public class SendToMethodReturnValueHandlerTests {
|
||||
|
||||
private static final MimeType MIME_TYPE = new MimeType("text", "plain", Charset.forName("UTF-8"));
|
||||
private static final MimeType MIME_TYPE = new MimeType("text", "plain", StandardCharsets.UTF_8);
|
||||
|
||||
private static final String PAYLOAD = "payload";
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ import static org.mockito.BDDMockito.*;
|
||||
*/
|
||||
public class SubscriptionMethodReturnValueHandlerTests {
|
||||
|
||||
public static final MimeType MIME_TYPE = new MimeType("text", "plain", Charset.forName("UTF-8"));
|
||||
public static final MimeType MIME_TYPE = new MimeType("text", "plain", StandardCharsets.UTF_8);
|
||||
|
||||
private static final String PAYLOAD = "payload";
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@ package org.springframework.messaging.simp.stomp;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
@@ -205,7 +206,7 @@ public class BufferingStompDecoderTests {
|
||||
}
|
||||
|
||||
private ByteBuffer toByteBuffer(String chunk) {
|
||||
return ByteBuffer.wrap(chunk.getBytes(Charset.forName("UTF-8")));
|
||||
return ByteBuffer.wrap(chunk.getBytes(StandardCharsets.UTF_8));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -16,12 +16,7 @@
|
||||
|
||||
package org.springframework.messaging.simp.stomp;
|
||||
|
||||
import static org.hamcrest.Matchers.*;
|
||||
import static org.junit.Assert.*;
|
||||
import static org.mockito.Matchers.any;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
@@ -51,6 +46,14 @@ import org.springframework.util.MimeType;
|
||||
import org.springframework.util.MimeTypeUtils;
|
||||
import org.springframework.util.concurrent.SettableListenableFuture;
|
||||
|
||||
import static org.hamcrest.Matchers.*;
|
||||
import static org.junit.Assert.*;
|
||||
import static org.mockito.Matchers.any;
|
||||
import static org.mockito.Mockito.eq;
|
||||
import static org.mockito.Mockito.*;
|
||||
import static org.mockito.Mockito.notNull;
|
||||
import static org.mockito.Mockito.same;
|
||||
|
||||
/**
|
||||
* Unit tests for {@link DefaultStompSession}.
|
||||
*
|
||||
@@ -58,9 +61,6 @@ import org.springframework.util.concurrent.SettableListenableFuture;
|
||||
*/
|
||||
public class DefaultStompSessionTests {
|
||||
|
||||
private static Charset UTF_8 = Charset.forName("UTF-8");
|
||||
|
||||
|
||||
private DefaultStompSession session;
|
||||
|
||||
@Mock
|
||||
@@ -80,7 +80,6 @@ public class DefaultStompSessionTests {
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
|
||||
MockitoAnnotations.initMocks(this);
|
||||
|
||||
this.sessionHandler = mock(StompSessionHandler.class);
|
||||
@@ -96,7 +95,6 @@ public class DefaultStompSessionTests {
|
||||
|
||||
@Test
|
||||
public void afterConnected() throws Exception {
|
||||
|
||||
assertFalse(this.session.isConnected());
|
||||
this.connectHeaders.setHost("my-host");
|
||||
this.connectHeaders.setHeartbeat(new long[] {11, 12});
|
||||
@@ -122,7 +120,6 @@ public class DefaultStompSessionTests {
|
||||
|
||||
@Test
|
||||
public void handleConnectedFrame() throws Exception {
|
||||
|
||||
this.session.afterConnected(this.connection);
|
||||
assertTrue(this.session.isConnected());
|
||||
|
||||
@@ -141,7 +138,6 @@ public class DefaultStompSessionTests {
|
||||
|
||||
@Test
|
||||
public void heartbeatValues() throws Exception {
|
||||
|
||||
this.session.afterConnected(this.connection);
|
||||
assertTrue(this.session.isConnected());
|
||||
|
||||
@@ -164,7 +160,6 @@ public class DefaultStompSessionTests {
|
||||
|
||||
@Test
|
||||
public void heartbeatNotSupportedByServer() throws Exception {
|
||||
|
||||
this.session.afterConnected(this.connection);
|
||||
verify(this.connection).send(any());
|
||||
|
||||
@@ -181,7 +176,6 @@ public class DefaultStompSessionTests {
|
||||
|
||||
@Test
|
||||
public void heartbeatTasks() throws Exception {
|
||||
|
||||
this.session.afterConnected(this.connection);
|
||||
verify(this.connection).send(any());
|
||||
|
||||
@@ -217,9 +211,8 @@ public class DefaultStompSessionTests {
|
||||
|
||||
@Test
|
||||
public void handleErrorFrame() throws Exception {
|
||||
|
||||
StompHeaderAccessor accessor = StompHeaderAccessor.create(StompCommand.ERROR);
|
||||
accessor.setContentType(new MimeType("text", "plain", UTF_8));
|
||||
accessor.setContentType(new MimeType("text", "plain", StandardCharsets.UTF_8));
|
||||
accessor.addNativeHeader("foo", "bar");
|
||||
accessor.setLeaveMutable(true);
|
||||
String payload = "Oops";
|
||||
@@ -227,7 +220,7 @@ public class DefaultStompSessionTests {
|
||||
StompHeaders stompHeaders = StompHeaders.readOnlyStompHeaders(accessor.getNativeHeaders());
|
||||
when(this.sessionHandler.getPayloadType(stompHeaders)).thenReturn(String.class);
|
||||
|
||||
this.session.handleMessage(MessageBuilder.createMessage(payload.getBytes(UTF_8), accessor.getMessageHeaders()));
|
||||
this.session.handleMessage(MessageBuilder.createMessage(payload.getBytes(StandardCharsets.UTF_8), accessor.getMessageHeaders()));
|
||||
|
||||
verify(this.sessionHandler).getPayloadType(stompHeaders);
|
||||
verify(this.sessionHandler).handleFrame(stompHeaders, payload);
|
||||
@@ -236,7 +229,6 @@ public class DefaultStompSessionTests {
|
||||
|
||||
@Test
|
||||
public void handleErrorFrameWithEmptyPayload() throws Exception {
|
||||
|
||||
StompHeaderAccessor accessor = StompHeaderAccessor.create(StompCommand.ERROR);
|
||||
accessor.addNativeHeader("foo", "bar");
|
||||
accessor.setLeaveMutable(true);
|
||||
@@ -249,12 +241,11 @@ public class DefaultStompSessionTests {
|
||||
|
||||
@Test
|
||||
public void handleErrorFrameWithConversionException() throws Exception {
|
||||
|
||||
StompHeaderAccessor accessor = StompHeaderAccessor.create(StompCommand.ERROR);
|
||||
accessor.setContentType(MimeTypeUtils.APPLICATION_JSON);
|
||||
accessor.addNativeHeader("foo", "bar");
|
||||
accessor.setLeaveMutable(true);
|
||||
byte[] payload = "{'foo':'bar'}".getBytes(UTF_8);
|
||||
byte[] payload = "{'foo':'bar'}".getBytes(StandardCharsets.UTF_8);
|
||||
|
||||
StompHeaders stompHeaders = StompHeaders.readOnlyStompHeaders(accessor.getNativeHeaders());
|
||||
when(this.sessionHandler.getPayloadType(stompHeaders)).thenReturn(Map.class);
|
||||
@@ -269,7 +260,6 @@ public class DefaultStompSessionTests {
|
||||
|
||||
@Test
|
||||
public void handleMessageFrame() throws Exception {
|
||||
|
||||
this.session.afterConnected(this.connection);
|
||||
|
||||
StompFrameHandler frameHandler = mock(StompFrameHandler.class);
|
||||
@@ -287,7 +277,8 @@ public class DefaultStompSessionTests {
|
||||
StompHeaders stompHeaders = StompHeaders.readOnlyStompHeaders(accessor.getNativeHeaders());
|
||||
when(frameHandler.getPayloadType(stompHeaders)).thenReturn(String.class);
|
||||
|
||||
this.session.handleMessage(MessageBuilder.createMessage(payload.getBytes(UTF_8), accessor.getMessageHeaders()));
|
||||
this.session.handleMessage(MessageBuilder.createMessage(payload.getBytes(StandardCharsets.UTF_8),
|
||||
accessor.getMessageHeaders()));
|
||||
|
||||
verify(frameHandler).getPayloadType(stompHeaders);
|
||||
verify(frameHandler).handleFrame(stompHeaders, payload);
|
||||
@@ -296,7 +287,6 @@ public class DefaultStompSessionTests {
|
||||
|
||||
@Test
|
||||
public void handleMessageFrameWithConversionException() throws Exception {
|
||||
|
||||
this.session.afterConnected(this.connection);
|
||||
assertTrue(this.session.isConnected());
|
||||
|
||||
@@ -310,7 +300,7 @@ public class DefaultStompSessionTests {
|
||||
accessor.setContentType(MimeTypeUtils.APPLICATION_JSON);
|
||||
accessor.setMessageId("1");
|
||||
accessor.setLeaveMutable(true);
|
||||
byte[] payload = "{'foo':'bar'}".getBytes(UTF_8);
|
||||
byte[] payload = "{'foo':'bar'}".getBytes(StandardCharsets.UTF_8);
|
||||
|
||||
StompHeaders stompHeaders = StompHeaders.readOnlyStompHeaders(accessor.getNativeHeaders());
|
||||
when(frameHandler.getPayloadType(stompHeaders)).thenReturn(Map.class);
|
||||
@@ -344,7 +334,6 @@ public class DefaultStompSessionTests {
|
||||
|
||||
@Test
|
||||
public void send() throws Exception {
|
||||
|
||||
this.session.afterConnected(this.connection);
|
||||
assertTrue(this.session.isConnected());
|
||||
|
||||
@@ -360,14 +349,13 @@ public class DefaultStompSessionTests {
|
||||
assertEquals(stompHeaders.toString(), 2, stompHeaders.size());
|
||||
|
||||
assertEquals(destination, stompHeaders.getDestination());
|
||||
assertEquals(new MimeType("text", "plain", UTF_8), stompHeaders.getContentType());
|
||||
assertEquals(-1, stompHeaders.getContentLength()); // StompEncoder isn't involved
|
||||
assertEquals(payload, new String(message.getPayload(), UTF_8));
|
||||
assertEquals(new MimeType("text", "plain", StandardCharsets.UTF_8), stompHeaders.getContentType());
|
||||
assertEquals(-1, stompHeaders.getContentLength()); // StompEncoder isn't involved
|
||||
assertEquals(payload, new String(message.getPayload(), StandardCharsets.UTF_8));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void sendWithReceipt() throws Exception {
|
||||
|
||||
this.session.afterConnected(this.connection);
|
||||
assertTrue(this.session.isConnected());
|
||||
|
||||
@@ -391,7 +379,6 @@ public class DefaultStompSessionTests {
|
||||
|
||||
@Test
|
||||
public void sendWithConversionException() throws Exception {
|
||||
|
||||
this.session.afterConnected(this.connection);
|
||||
assertTrue(this.session.isConnected());
|
||||
|
||||
@@ -407,7 +394,6 @@ public class DefaultStompSessionTests {
|
||||
|
||||
@Test
|
||||
public void sendWithExecutionException() throws Exception {
|
||||
|
||||
this.session.afterConnected(this.connection);
|
||||
assertTrue(this.session.isConnected());
|
||||
|
||||
@@ -419,14 +405,13 @@ public class DefaultStompSessionTests {
|
||||
this.expected.expect(MessageDeliveryException.class);
|
||||
this.expected.expectCause(Matchers.sameInstance(exception));
|
||||
|
||||
this.session.send("/topic/foo", "sample payload".getBytes(UTF_8));
|
||||
this.session.send("/topic/foo", "sample payload".getBytes(StandardCharsets.UTF_8));
|
||||
|
||||
verifyNoMoreInteractions(this.connection);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void subscribe() throws Exception {
|
||||
|
||||
this.session.afterConnected(this.connection);
|
||||
assertTrue(this.session.isConnected());
|
||||
|
||||
@@ -446,7 +431,6 @@ public class DefaultStompSessionTests {
|
||||
|
||||
@Test
|
||||
public void subscribeWithHeaders() throws Exception {
|
||||
|
||||
this.session.afterConnected(this.connection);
|
||||
assertTrue(this.session.isConnected());
|
||||
|
||||
@@ -473,7 +457,6 @@ public class DefaultStompSessionTests {
|
||||
|
||||
@Test
|
||||
public void unsubscribe() throws Exception {
|
||||
|
||||
this.session.afterConnected(this.connection);
|
||||
assertTrue(this.session.isConnected());
|
||||
|
||||
@@ -493,7 +476,6 @@ public class DefaultStompSessionTests {
|
||||
|
||||
@Test
|
||||
public void ack() throws Exception {
|
||||
|
||||
this.session.afterConnected(this.connection);
|
||||
assertTrue(this.session.isConnected());
|
||||
|
||||
@@ -511,7 +493,6 @@ public class DefaultStompSessionTests {
|
||||
|
||||
@Test
|
||||
public void nack() throws Exception {
|
||||
|
||||
this.session.afterConnected(this.connection);
|
||||
assertTrue(this.session.isConnected());
|
||||
|
||||
@@ -529,7 +510,6 @@ public class DefaultStompSessionTests {
|
||||
|
||||
@Test
|
||||
public void receiptReceived() throws Exception {
|
||||
|
||||
this.session.afterConnected(this.connection);
|
||||
this.session.setTaskScheduler(mock(TaskScheduler.class));
|
||||
|
||||
@@ -554,7 +534,6 @@ public class DefaultStompSessionTests {
|
||||
|
||||
@Test
|
||||
public void receiptReceivedBeforeTaskAdded() throws Exception {
|
||||
|
||||
this.session.afterConnected(this.connection);
|
||||
this.session.setTaskScheduler(mock(TaskScheduler.class));
|
||||
|
||||
@@ -579,7 +558,6 @@ public class DefaultStompSessionTests {
|
||||
@Test
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
public void receiptNotReceived() throws Exception {
|
||||
|
||||
TaskScheduler taskScheduler = mock(TaskScheduler.class);
|
||||
|
||||
this.session.afterConnected(this.connection);
|
||||
@@ -611,7 +589,6 @@ public class DefaultStompSessionTests {
|
||||
|
||||
@Test
|
||||
public void disconnect() throws Exception {
|
||||
|
||||
this.session.afterConnected(this.connection);
|
||||
assertTrue(this.session.isConnected());
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
package org.springframework.messaging.simp.stomp;
|
||||
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
@@ -33,6 +33,7 @@ import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.rules.TestName;
|
||||
|
||||
import org.springframework.context.ApplicationEvent;
|
||||
import org.springframework.context.ApplicationEventPublisher;
|
||||
import org.springframework.messaging.Message;
|
||||
@@ -48,9 +49,7 @@ import org.springframework.messaging.support.MessageBuilder;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.SocketUtils;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
/**
|
||||
* Integration tests for {@link StompBrokerRelayMessageHandler} running against ActiveMQ.
|
||||
@@ -64,8 +63,6 @@ public class StompBrokerRelayMessageHandlerIntegrationTests {
|
||||
|
||||
private static final Log logger = LogFactory.getLog(StompBrokerRelayMessageHandlerIntegrationTests.class);
|
||||
|
||||
private static final Charset UTF_8 = Charset.forName("UTF-8");
|
||||
|
||||
private StompBrokerRelayMessageHandler relay;
|
||||
|
||||
private BrokerService activeMQBroker;
|
||||
@@ -142,9 +139,9 @@ public class StompBrokerRelayMessageHandlerIntegrationTests {
|
||||
logger.debug("Broker stopped");
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void publishSubscribe() throws Exception {
|
||||
|
||||
logger.debug("Starting test publishSubscribe()");
|
||||
|
||||
String sess1 = "sess1";
|
||||
@@ -167,7 +164,7 @@ public class StompBrokerRelayMessageHandlerIntegrationTests {
|
||||
this.responseHandler.expectMessages(send);
|
||||
}
|
||||
|
||||
@Test(expected=MessageDeliveryException.class)
|
||||
@Test(expected = MessageDeliveryException.class)
|
||||
public void messageDeliveryExceptionIfSystemSessionForwardFails() throws Exception {
|
||||
|
||||
logger.debug("Starting test messageDeliveryExceptionIfSystemSessionForwardFails()");
|
||||
@@ -181,7 +178,6 @@ public class StompBrokerRelayMessageHandlerIntegrationTests {
|
||||
|
||||
@Test
|
||||
public void brokerBecomingUnvailableTriggersErrorFrame() throws Exception {
|
||||
|
||||
logger.debug("Starting test brokerBecomingUnvailableTriggersErrorFrame()");
|
||||
|
||||
String sess1 = "sess1";
|
||||
@@ -197,7 +193,6 @@ public class StompBrokerRelayMessageHandlerIntegrationTests {
|
||||
|
||||
@Test
|
||||
public void brokerAvailabilityEventWhenStopped() throws Exception {
|
||||
|
||||
logger.debug("Starting test brokerAvailabilityEventWhenStopped()");
|
||||
|
||||
stopActiveMqBrokerAndAwait();
|
||||
@@ -206,7 +201,6 @@ public class StompBrokerRelayMessageHandlerIntegrationTests {
|
||||
|
||||
@Test
|
||||
public void relayReconnectsIfBrokerComesBackUp() throws Exception {
|
||||
|
||||
logger.debug("Starting test relayReconnectsIfBrokerComesBackUp()");
|
||||
|
||||
String sess1 = "sess1";
|
||||
@@ -232,7 +226,6 @@ public class StompBrokerRelayMessageHandlerIntegrationTests {
|
||||
|
||||
@Test
|
||||
public void disconnectWithReceipt() throws Exception {
|
||||
|
||||
logger.debug("Starting test disconnectWithReceipt()");
|
||||
|
||||
MessageExchange connect = MessageExchangeBuilder.connect("sess1").build();
|
||||
@@ -270,6 +263,7 @@ public class StompBrokerRelayMessageHandlerIntegrationTests {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private static class TestMessageHandler implements MessageHandler {
|
||||
|
||||
private final BlockingQueue<Message<?>> queue = new LinkedBlockingQueue<>();
|
||||
@@ -283,17 +277,13 @@ public class StompBrokerRelayMessageHandlerIntegrationTests {
|
||||
}
|
||||
|
||||
public void expectMessages(MessageExchange... messageExchanges) throws InterruptedException {
|
||||
|
||||
List<MessageExchange> expectedMessages =
|
||||
new ArrayList<>(Arrays.<MessageExchange>asList(messageExchanges));
|
||||
|
||||
while (expectedMessages.size() > 0) {
|
||||
Message<?> message = this.queue.poll(10000, TimeUnit.MILLISECONDS);
|
||||
assertNotNull("Timed out waiting for messages, expected [" + expectedMessages + "]", message);
|
||||
|
||||
MessageExchange match = findMatch(expectedMessages, message);
|
||||
assertNotNull("Unexpected message=" + message + ", expected [" + expectedMessages + "]", match);
|
||||
|
||||
expectedMessages.remove(match);
|
||||
}
|
||||
}
|
||||
@@ -308,6 +298,7 @@ public class StompBrokerRelayMessageHandlerIntegrationTests {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Holds a message as well as expected and actual messages matched against expectations.
|
||||
*/
|
||||
@@ -343,6 +334,7 @@ public class StompBrokerRelayMessageHandlerIntegrationTests {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private static class MessageExchangeBuilder {
|
||||
|
||||
private final Message<?> message;
|
||||
@@ -351,8 +343,7 @@ public class StompBrokerRelayMessageHandlerIntegrationTests {
|
||||
|
||||
private final List<MessageMatcher> expected = new ArrayList<>();
|
||||
|
||||
|
||||
private MessageExchangeBuilder(Message<?> message) {
|
||||
public MessageExchangeBuilder(Message<?> message) {
|
||||
this.message = message;
|
||||
this.headers = StompHeaderAccessor.wrap(message);
|
||||
}
|
||||
@@ -402,7 +393,8 @@ public class StompBrokerRelayMessageHandlerIntegrationTests {
|
||||
public static MessageExchangeBuilder send(String destination, String payload) {
|
||||
SimpMessageHeaderAccessor headers = SimpMessageHeaderAccessor.create(SimpMessageType.MESSAGE);
|
||||
headers.setDestination(destination);
|
||||
Message<?> message = MessageBuilder.createMessage(payload.getBytes(UTF_8), headers.getMessageHeaders());
|
||||
Message<?> message = MessageBuilder.createMessage(payload.getBytes(StandardCharsets.UTF_8),
|
||||
headers.getMessageHeaders());
|
||||
return new MessageExchangeBuilder(message);
|
||||
}
|
||||
|
||||
@@ -442,25 +434,24 @@ public class StompBrokerRelayMessageHandlerIntegrationTests {
|
||||
}
|
||||
}
|
||||
|
||||
private static interface MessageMatcher {
|
||||
|
||||
private interface MessageMatcher {
|
||||
|
||||
boolean match(Message<?> message);
|
||||
|
||||
}
|
||||
|
||||
|
||||
private static class StompFrameMessageMatcher implements MessageMatcher {
|
||||
|
||||
private final StompCommand command;
|
||||
|
||||
private final String sessionId;
|
||||
|
||||
|
||||
public StompFrameMessageMatcher(StompCommand command, String sessionId) {
|
||||
this.command = command;
|
||||
this.sessionId = sessionId;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public final boolean match(Message<?> message) {
|
||||
StompHeaderAccessor headers = StompHeaderAccessor.wrap(message);
|
||||
@@ -480,6 +471,7 @@ public class StompBrokerRelayMessageHandlerIntegrationTests {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private static class StompReceiptFrameMessageMatcher extends StompFrameMessageMatcher {
|
||||
|
||||
private final String receiptId;
|
||||
@@ -500,6 +492,7 @@ public class StompBrokerRelayMessageHandlerIntegrationTests {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private static class StompMessageFrameMessageMatcher extends StompFrameMessageMatcher {
|
||||
|
||||
private final String subscriptionId;
|
||||
@@ -508,7 +501,6 @@ public class StompBrokerRelayMessageHandlerIntegrationTests {
|
||||
|
||||
private final Object payload;
|
||||
|
||||
|
||||
public StompMessageFrameMessageMatcher(String sessionId, String subscriptionId, String destination, Object payload) {
|
||||
super(StompCommand.MESSAGE, sessionId);
|
||||
this.subscriptionId = subscriptionId;
|
||||
@@ -536,18 +528,17 @@ public class StompBrokerRelayMessageHandlerIntegrationTests {
|
||||
}
|
||||
|
||||
protected String getPayloadAsText() {
|
||||
return (this.payload instanceof byte[])
|
||||
? new String((byte[]) this.payload, UTF_8) : payload.toString();
|
||||
return (this.payload instanceof byte[]) ?
|
||||
new String((byte[]) this.payload, StandardCharsets.UTF_8) : this.payload.toString();
|
||||
}
|
||||
}
|
||||
|
||||
private static class StompConnectedFrameMessageMatcher extends StompFrameMessageMatcher {
|
||||
|
||||
private static class StompConnectedFrameMessageMatcher extends StompFrameMessageMatcher {
|
||||
|
||||
public StompConnectedFrameMessageMatcher(String sessionId) {
|
||||
super(StompCommand.CONNECTED, sessionId);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
package org.springframework.messaging.simp.stomp;
|
||||
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -46,11 +46,8 @@ import static org.junit.Assert.*;
|
||||
*/
|
||||
public class StompHeaderAccessorTests {
|
||||
|
||||
private static final Charset UTF_8 = Charset.forName("UTF-8");
|
||||
|
||||
@Test
|
||||
public void createWithCommand() {
|
||||
|
||||
StompHeaderAccessor accessor = StompHeaderAccessor.create(StompCommand.CONNECTED);
|
||||
assertEquals(StompCommand.CONNECTED, accessor.getCommand());
|
||||
|
||||
@@ -60,7 +57,6 @@ public class StompHeaderAccessorTests {
|
||||
|
||||
@Test
|
||||
public void createWithSubscribeNativeHeaders() {
|
||||
|
||||
MultiValueMap<String, String> extHeaders = new LinkedMultiValueMap<>();
|
||||
extHeaders.add(StompHeaderAccessor.STOMP_ID_HEADER, "s1");
|
||||
extHeaders.add(StompHeaderAccessor.STOMP_DESTINATION_HEADER, "/d");
|
||||
@@ -75,7 +71,6 @@ public class StompHeaderAccessorTests {
|
||||
|
||||
@Test
|
||||
public void createWithUnubscribeNativeHeaders() {
|
||||
|
||||
MultiValueMap<String, String> extHeaders = new LinkedMultiValueMap<>();
|
||||
extHeaders.add(StompHeaderAccessor.STOMP_ID_HEADER, "s1");
|
||||
|
||||
@@ -88,7 +83,6 @@ public class StompHeaderAccessorTests {
|
||||
|
||||
@Test
|
||||
public void createWithMessageFrameNativeHeaders() {
|
||||
|
||||
MultiValueMap<String, String> extHeaders = new LinkedMultiValueMap<>();
|
||||
extHeaders.add(StompHeaderAccessor.DESTINATION_HEADER, "/d");
|
||||
extHeaders.add(StompHeaderAccessor.STOMP_SUBSCRIPTION_HEADER, "s1");
|
||||
@@ -103,7 +97,6 @@ public class StompHeaderAccessorTests {
|
||||
|
||||
@Test
|
||||
public void createWithConnectNativeHeaders() {
|
||||
|
||||
MultiValueMap<String, String> extHeaders = new LinkedMultiValueMap<>();
|
||||
extHeaders.add(StompHeaderAccessor.STOMP_LOGIN_HEADER, "joe");
|
||||
extHeaders.add(StompHeaderAccessor.STOMP_PASSCODE_HEADER, "joe123");
|
||||
@@ -124,7 +117,6 @@ public class StompHeaderAccessorTests {
|
||||
|
||||
@Test
|
||||
public void toNativeHeadersSubscribe() {
|
||||
|
||||
StompHeaderAccessor headers = StompHeaderAccessor.create(StompCommand.SUBSCRIBE);
|
||||
headers.setSubscriptionId("s1");
|
||||
headers.setDestination("/d");
|
||||
@@ -138,7 +130,6 @@ public class StompHeaderAccessorTests {
|
||||
|
||||
@Test
|
||||
public void toNativeHeadersUnsubscribe() {
|
||||
|
||||
StompHeaderAccessor headers = StompHeaderAccessor.create(StompCommand.UNSUBSCRIBE);
|
||||
headers.setSubscriptionId("s1");
|
||||
|
||||
@@ -150,7 +141,6 @@ public class StompHeaderAccessorTests {
|
||||
|
||||
@Test
|
||||
public void toNativeHeadersMessageFrame() {
|
||||
|
||||
StompHeaderAccessor headers = StompHeaderAccessor.create(StompCommand.MESSAGE);
|
||||
headers.setSubscriptionId("s1");
|
||||
headers.setDestination("/d");
|
||||
@@ -168,7 +158,6 @@ public class StompHeaderAccessorTests {
|
||||
|
||||
@Test
|
||||
public void toNativeHeadersContentType() {
|
||||
|
||||
SimpMessageHeaderAccessor simpHeaderAccessor = SimpMessageHeaderAccessor.create();
|
||||
simpHeaderAccessor.setContentType(MimeTypeUtils.APPLICATION_ATOM_XML);
|
||||
Message<byte[]> message = MessageBuilder.createMessage(new byte[0], simpHeaderAccessor.getMessageHeaders());
|
||||
@@ -181,7 +170,6 @@ public class StompHeaderAccessorTests {
|
||||
|
||||
@Test
|
||||
public void encodeConnectWithLoginAndPasscode() throws UnsupportedEncodingException {
|
||||
|
||||
MultiValueMap<String, String> extHeaders = new LinkedMultiValueMap<>();
|
||||
extHeaders.add(StompHeaderAccessor.STOMP_LOGIN_HEADER, "joe");
|
||||
extHeaders.add(StompHeaderAccessor.STOMP_PASSCODE_HEADER, "joe123");
|
||||
@@ -195,7 +183,6 @@ public class StompHeaderAccessorTests {
|
||||
|
||||
@Test
|
||||
public void modifyCustomNativeHeader() {
|
||||
|
||||
MultiValueMap<String, String> extHeaders = new LinkedMultiValueMap<>();
|
||||
extHeaders.add(StompHeaderAccessor.STOMP_ID_HEADER, "s1");
|
||||
extHeaders.add(StompHeaderAccessor.STOMP_DESTINATION_HEADER, "/d");
|
||||
@@ -249,7 +236,7 @@ public class StompHeaderAccessorTests {
|
||||
accessor.setDestination("/foo");
|
||||
accessor.setContentType(MimeTypeUtils.APPLICATION_JSON);
|
||||
accessor.setSessionId("123");
|
||||
String actual = accessor.getShortLogMessage("payload".getBytes(Charset.forName("UTF-8")));
|
||||
String actual = accessor.getShortLogMessage("payload".getBytes(StandardCharsets.UTF_8));
|
||||
assertEquals("SEND /foo session=123 application/json payload=payload", actual);
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
@@ -257,7 +244,7 @@ public class StompHeaderAccessorTests {
|
||||
sb.append("a");
|
||||
}
|
||||
final String payload = sb.toString() + " > 80";
|
||||
actual = accessor.getShortLogMessage(payload.getBytes(UTF_8));
|
||||
actual = accessor.getShortLogMessage(payload.getBytes(StandardCharsets.UTF_8));
|
||||
assertEquals("SEND /foo session=123 application/json payload=" + sb + "...(truncated)", actual);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2015 the original author or authors.
|
||||
* Copyright 2002-2016 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -21,6 +21,7 @@ import static org.mockito.BDDMockito.*;
|
||||
import static org.springframework.messaging.simp.SimpMessageHeaderAccessor.*;
|
||||
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@@ -45,7 +46,6 @@ public class UserDestinationMessageHandlerTests {
|
||||
|
||||
private static final String SESSION_ID = "123";
|
||||
|
||||
|
||||
private UserDestinationMessageHandler handler;
|
||||
|
||||
private SimpUserRegistry registry;
|
||||
@@ -138,7 +138,7 @@ public class UserDestinationMessageHandlerTests {
|
||||
accessor.setNativeHeader(ORIGINAL_DESTINATION, "/user/joe/queue/foo");
|
||||
accessor.setNativeHeader("customHeader", "customHeaderValue");
|
||||
accessor.setLeaveMutable(true);
|
||||
byte[] payload = "payload".getBytes(Charset.forName("UTF-8"));
|
||||
byte[] payload = "payload".getBytes(StandardCharsets.UTF_8);
|
||||
this.handler.handleMessage(MessageBuilder.createMessage(payload, accessor.getMessageHeaders()));
|
||||
|
||||
ArgumentCaptor<Message> captor = ArgumentCaptor.forClass(Message.class);
|
||||
@@ -161,7 +161,7 @@ public class UserDestinationMessageHandlerTests {
|
||||
accessor.setDestination("/topic/unresolved");
|
||||
accessor.setNativeHeader(ORIGINAL_DESTINATION, "/user/joe/queue/foo");
|
||||
accessor.setLeaveMutable(true);
|
||||
byte[] payload = "payload".getBytes(Charset.forName("UTF-8"));
|
||||
byte[] payload = "payload".getBytes(StandardCharsets.UTF_8);
|
||||
this.handler.handleMessage(MessageBuilder.createMessage(payload, accessor.getMessageHeaders()));
|
||||
|
||||
// No re-broadcast
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
package org.springframework.messaging.support;
|
||||
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
@@ -45,8 +45,6 @@ import static org.junit.Assert.*;
|
||||
*/
|
||||
public class MessageHeaderAccessorTests {
|
||||
|
||||
private static final Charset UTF_8 = Charset.forName("UTF-8");
|
||||
|
||||
@Rule
|
||||
public final ExpectedException thrown = ExpectedException.none();
|
||||
|
||||
@@ -334,7 +332,7 @@ public class MessageHeaderAccessorTests {
|
||||
accessor.setContentType(MimeTypeUtils.TEXT_PLAIN);
|
||||
|
||||
assertEquals("headers={contentType=text/plain} payload=p", accessor.getShortLogMessage("p"));
|
||||
assertEquals("headers={contentType=text/plain} payload=p", accessor.getShortLogMessage("p".getBytes(UTF_8)));
|
||||
assertEquals("headers={contentType=text/plain} payload=p", accessor.getShortLogMessage("p".getBytes(StandardCharsets.UTF_8)));
|
||||
assertEquals("headers={contentType=text/plain} payload=p", accessor.getShortLogMessage(new Object() {
|
||||
@Override
|
||||
public String toString() {
|
||||
@@ -351,7 +349,7 @@ public class MessageHeaderAccessorTests {
|
||||
String actual = accessor.getShortLogMessage(payload);
|
||||
assertEquals("headers={contentType=text/plain} payload=" + sb + "...(truncated)", actual);
|
||||
|
||||
actual = accessor.getShortLogMessage(payload.getBytes(UTF_8));
|
||||
actual = accessor.getShortLogMessage(payload.getBytes(StandardCharsets.UTF_8));
|
||||
assertEquals("headers={contentType=text/plain} payload=" + sb + "...(truncated)", actual);
|
||||
|
||||
actual = accessor.getShortLogMessage(new Object() {
|
||||
@@ -369,7 +367,7 @@ public class MessageHeaderAccessorTests {
|
||||
accessor.setContentType(MimeTypeUtils.TEXT_PLAIN);
|
||||
|
||||
assertEquals("headers={contentType=text/plain} payload=p", accessor.getDetailedLogMessage("p"));
|
||||
assertEquals("headers={contentType=text/plain} payload=p", accessor.getDetailedLogMessage("p".getBytes(UTF_8)));
|
||||
assertEquals("headers={contentType=text/plain} payload=p", accessor.getDetailedLogMessage("p".getBytes(StandardCharsets.UTF_8)));
|
||||
assertEquals("headers={contentType=text/plain} payload=p", accessor.getDetailedLogMessage(new Object() {
|
||||
@Override
|
||||
public String toString() {
|
||||
@@ -386,7 +384,7 @@ public class MessageHeaderAccessorTests {
|
||||
String actual = accessor.getDetailedLogMessage(payload);
|
||||
assertEquals("headers={contentType=text/plain} payload=" + sb + " > 80", actual);
|
||||
|
||||
actual = accessor.getDetailedLogMessage(payload.getBytes(UTF_8));
|
||||
actual = accessor.getDetailedLogMessage(payload.getBytes(StandardCharsets.UTF_8));
|
||||
assertEquals("headers={contentType=text/plain} payload=" + sb + " > 80", actual);
|
||||
|
||||
actual = accessor.getDetailedLogMessage(new Object() {
|
||||
|
||||
Reference in New Issue
Block a user