提交 afb56681 编写于 作者: R Rossen Stoyanchev

Fix minor issue in StandardToWebSocketExtensionAdapter

This change ensures proper initialization of a WebSocketExtension
from a JSR-356 Extension.

This is in preparation for SPR-11094
上级 e74ac067
......@@ -18,19 +18,35 @@ package org.springframework.web.socket.adapter.standard;
import javax.websocket.Extension;
import org.springframework.util.LinkedCaseInsensitiveMap;
import org.springframework.web.socket.WebSocketExtension;
import java.util.List;
import java.util.Locale;
import java.util.Map;
/**
* A sub-class of {@link org.springframework.web.socket.WebSocketExtension} that
* can be constructed from an {@link javax.websocket.Extension}.
*
* @author Rossen Stoyanchev
* @since 4.0
*/
public class StandardToWebSocketExtensionAdapter extends WebSocketExtension {
public StandardToWebSocketExtensionAdapter(Extension ext) {
super(ext.getName());
for (Extension.Parameter p : ext.getParameters()) {
super.getParameters().put(p.getName(), p.getValue());
public StandardToWebSocketExtensionAdapter(Extension extension) {
super(extension.getName(), initParameters(extension));
}
private static Map<String, String> initParameters(Extension extension) {
List<Extension.Parameter> parameters = extension.getParameters();
Map<String, String> result = new LinkedCaseInsensitiveMap<String>(parameters.size(), Locale.ENGLISH);
for (Extension.Parameter parameter : parameters) {
result.put(parameter.getName(), parameter.getValue());
}
return result;
}
}
......@@ -23,6 +23,9 @@ import javax.websocket.Extension;
import org.springframework.web.socket.WebSocketExtension;
/**
* Adapt an instance of {@link org.springframework.web.socket.WebSocketExtension} to
* the {@link javax.websocket.Extension} interface.
*
* @author Rossen Stoyanchev
* @since 4.0
*/
......@@ -32,9 +35,10 @@ public class WebSocketToStandardExtensionAdapter implements Extension {
private final List<Parameter> parameters = new ArrayList<Parameter>();
public WebSocketToStandardExtensionAdapter(final WebSocketExtension ext) {
this.name = ext.getName();
for (final String paramName : ext.getParameters().keySet()) {
public WebSocketToStandardExtensionAdapter(final WebSocketExtension extension) {
this.name = extension.getName();
for (final String paramName : extension.getParameters().keySet()) {
this.parameters.add(new Parameter() {
@Override
public String getName() {
......@@ -42,7 +46,7 @@ public class WebSocketToStandardExtensionAdapter implements Extension {
}
@Override
public String getValue() {
return ext.getParameters().get(paramName);
return extension.getParameters().get(paramName);
}
});
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册