Skip to content

Commit 100d75d

Browse files
committed
Fix client-library-url ignored in MVC namespace
Prior to this commit, the `client-library-url` XML attribute was not effective in the MVC namespace, leaving the default value configured: ```xml <websocket:sockjs client-library-url="/js/sockjs.js" /> ``` This commit fixes the sockjs namespace handler and makes sure that this attribute is configured on the `SockJsService` Bean to be created. Issue: SPR-12874
1 parent 25f6001 commit 100d75d

File tree

3 files changed

+7
-1
lines changed

3 files changed

+7
-1
lines changed

spring-websocket/src/main/java/org/springframework/web/socket/config/WebSocketNamespaceUtils.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,10 @@ else if (handshakeHandler != null) {
137137
if (!attrValue.isEmpty()) {
138138
sockJsServiceDef.getPropertyValues().add("heartbeatTime", Long.valueOf(attrValue));
139139
}
140+
attrValue = sockJsElement.getAttribute("client-library-url");
141+
if (!attrValue.isEmpty()) {
142+
sockJsServiceDef.getPropertyValues().add("sockJsClientLibraryUrl", attrValue);
143+
}
140144
attrValue = sockJsElement.getAttribute("message-codec");
141145
if (!attrValue.isEmpty()) {
142146
sockJsServiceDef.getPropertyValues().add("messageCodec", new RuntimeBeanReference(attrValue));

spring-websocket/src/test/java/org/springframework/web/socket/config/HandlersBeanDefinitionParserTests.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,7 @@ public void sockJsAttributes() {
230230
assertEquals(256, transportService.getDisconnectDelay());
231231
assertEquals(1024, transportService.getHttpMessageCacheSize());
232232
assertEquals(20, transportService.getHeartbeatTime());
233+
assertEquals("/js/sockjs.min.js", transportService.getSockJsClientLibraryUrl());
233234
assertEquals(TestMessageCodec.class, transportService.getMessageCodec().getClass());
234235

235236
List<HandshakeInterceptor> interceptors = transportService.getHandshakeInterceptors();

spring-websocket/src/test/resources/org/springframework/web/socket/config/websocket-config-handlers-sockjs-attributes.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
<websocket:mapping path="/test" handler="testHandler"/>
1010
<websocket:sockjs name="testSockJsService" scheduler="testTaskScheduler" websocket-enabled="false"
1111
session-cookie-needed="false" stream-bytes-limit="2048" disconnect-delay="256"
12-
message-cache-size="1024" heartbeat-time="20" message-codec="messageCodec" suppress-cors="true">
12+
message-cache-size="1024" heartbeat-time="20" message-codec="messageCodec"
13+
client-library-url="/js/sockjs.min.js" suppress-cors="true">
1314
<websocket:transport-handlers register-defaults="false">
1415
<bean class="org.springframework.web.socket.sockjs.transport.handler.XhrPollingTransportHandler"/>
1516
<ref bean="xhrStreamingTransportHandler"/>

0 commit comments

Comments
 (0)