Issue #5044 - Jetty Server upgrade request/response now implement the API interfaces

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
This commit is contained in:
Lachlan Roberts 2020-07-30 13:28:39 +10:00
parent 9027e17095
commit 3074aa7fae
18 changed files with 202 additions and 244 deletions

View File

@ -22,13 +22,13 @@ import java.net.URI;
import java.security.Principal; import java.security.Principal;
import org.eclipse.jetty.websocket.javax.common.UpgradeRequest; import org.eclipse.jetty.websocket.javax.common.UpgradeRequest;
import org.eclipse.jetty.websocket.util.server.internal.ServletUpgradeRequest; import org.eclipse.jetty.websocket.util.server.internal.ServerUpgradeRequest;
public class JavaxServerUpgradeRequest implements UpgradeRequest public class JavaxServerUpgradeRequest implements UpgradeRequest
{ {
private final ServletUpgradeRequest servletRequest; private final ServerUpgradeRequest servletRequest;
public JavaxServerUpgradeRequest(ServletUpgradeRequest servletRequest) public JavaxServerUpgradeRequest(ServerUpgradeRequest servletRequest)
{ {
this.servletRequest = servletRequest; this.servletRequest = servletRequest;
} }

View File

@ -38,8 +38,8 @@ import org.eclipse.jetty.websocket.javax.common.ConfiguredEndpoint;
import org.eclipse.jetty.websocket.javax.common.JavaxWebSocketContainer; import org.eclipse.jetty.websocket.javax.common.JavaxWebSocketContainer;
import org.eclipse.jetty.websocket.javax.common.JavaxWebSocketExtension; import org.eclipse.jetty.websocket.javax.common.JavaxWebSocketExtension;
import org.eclipse.jetty.websocket.javax.common.ServerEndpointConfigWrapper; import org.eclipse.jetty.websocket.javax.common.ServerEndpointConfigWrapper;
import org.eclipse.jetty.websocket.util.server.internal.ServletUpgradeRequest; import org.eclipse.jetty.websocket.util.server.internal.ServerUpgradeRequest;
import org.eclipse.jetty.websocket.util.server.internal.ServletUpgradeResponse; import org.eclipse.jetty.websocket.util.server.internal.ServerUpgradeResponse;
import org.eclipse.jetty.websocket.util.server.internal.WebSocketCreator; import org.eclipse.jetty.websocket.util.server.internal.WebSocketCreator;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -62,7 +62,7 @@ public class JavaxWebSocketCreator implements WebSocketCreator
} }
@Override @Override
public Object createWebSocket(ServletUpgradeRequest req, ServletUpgradeResponse resp) public Object createWebSocket(ServerUpgradeRequest req, ServerUpgradeResponse resp)
{ {
final JsrHandshakeRequest jsrHandshakeRequest = new JsrHandshakeRequest(req); final JsrHandshakeRequest jsrHandshakeRequest = new JsrHandshakeRequest(req);
final JsrHandshakeResponse jsrHandshakeResponse = new JsrHandshakeResponse(resp); final JsrHandshakeResponse jsrHandshakeResponse = new JsrHandshakeResponse(resp);

View File

@ -27,8 +27,8 @@ import org.eclipse.jetty.websocket.javax.client.internal.JavaxWebSocketClientFra
import org.eclipse.jetty.websocket.javax.common.JavaxWebSocketContainer; import org.eclipse.jetty.websocket.javax.common.JavaxWebSocketContainer;
import org.eclipse.jetty.websocket.javax.common.JavaxWebSocketFrameHandlerMetadata; import org.eclipse.jetty.websocket.javax.common.JavaxWebSocketFrameHandlerMetadata;
import org.eclipse.jetty.websocket.util.server.internal.FrameHandlerFactory; import org.eclipse.jetty.websocket.util.server.internal.FrameHandlerFactory;
import org.eclipse.jetty.websocket.util.server.internal.ServletUpgradeRequest; import org.eclipse.jetty.websocket.util.server.internal.ServerUpgradeRequest;
import org.eclipse.jetty.websocket.util.server.internal.ServletUpgradeResponse; import org.eclipse.jetty.websocket.util.server.internal.ServerUpgradeResponse;
public class JavaxWebSocketServerFrameHandlerFactory extends JavaxWebSocketClientFrameHandlerFactory implements FrameHandlerFactory public class JavaxWebSocketServerFrameHandlerFactory extends JavaxWebSocketClientFrameHandlerFactory implements FrameHandlerFactory
{ {
@ -54,7 +54,7 @@ public class JavaxWebSocketServerFrameHandlerFactory extends JavaxWebSocketClien
} }
@Override @Override
public FrameHandler newFrameHandler(Object websocketPojo, ServletUpgradeRequest upgradeRequest, ServletUpgradeResponse upgradeResponse) public FrameHandler newFrameHandler(Object websocketPojo, ServerUpgradeRequest upgradeRequest, ServerUpgradeResponse upgradeResponse)
{ {
return newJavaxWebSocketFrameHandler(websocketPojo, new JavaxServerUpgradeRequest(upgradeRequest)); return newJavaxWebSocketFrameHandler(websocketPojo, new JavaxServerUpgradeRequest(upgradeRequest));
} }

View File

@ -25,13 +25,13 @@ import java.util.Map;
import javax.websocket.server.HandshakeRequest; import javax.websocket.server.HandshakeRequest;
import org.eclipse.jetty.http.pathmap.PathSpec; import org.eclipse.jetty.http.pathmap.PathSpec;
import org.eclipse.jetty.websocket.util.server.internal.ServletUpgradeRequest; import org.eclipse.jetty.websocket.util.server.internal.ServerUpgradeRequest;
public class JsrHandshakeRequest implements HandshakeRequest public class JsrHandshakeRequest implements HandshakeRequest
{ {
private final ServletUpgradeRequest delegate; private final ServerUpgradeRequest delegate;
public JsrHandshakeRequest(ServletUpgradeRequest req) public JsrHandshakeRequest(ServerUpgradeRequest req)
{ {
this.delegate = req; this.delegate = req;
} }

View File

@ -23,14 +23,14 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import javax.websocket.HandshakeResponse; import javax.websocket.HandshakeResponse;
import org.eclipse.jetty.websocket.util.server.internal.ServletUpgradeResponse; import org.eclipse.jetty.websocket.util.server.internal.ServerUpgradeResponse;
public class JsrHandshakeResponse implements HandshakeResponse public class JsrHandshakeResponse implements HandshakeResponse
{ {
private final ServletUpgradeResponse delegate; private final ServerUpgradeResponse delegate;
private Map<String, List<String>> headerMap; private Map<String, List<String>> headerMap;
public JsrHandshakeResponse(ServletUpgradeResponse resp) public JsrHandshakeResponse(ServerUpgradeResponse resp)
{ {
this.delegate = resp; this.delegate = resp;
this.headerMap = new HashMap<>(); this.headerMap = new HashMap<>();

View File

@ -36,7 +36,7 @@ import org.eclipse.jetty.websocket.api.extensions.ExtensionConfig;
*/ */
public class DelegatedJettyClientUpgradeResponse implements UpgradeResponse public class DelegatedJettyClientUpgradeResponse implements UpgradeResponse
{ {
private HttpResponse delegate; private final HttpResponse delegate;
public DelegatedJettyClientUpgradeResponse(HttpResponse response) public DelegatedJettyClientUpgradeResponse(HttpResponse response)
{ {

View File

@ -33,20 +33,134 @@ import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
import org.eclipse.jetty.websocket.api.UpgradeRequest;
import org.eclipse.jetty.websocket.api.extensions.ExtensionConfig; import org.eclipse.jetty.websocket.api.extensions.ExtensionConfig;
import org.eclipse.jetty.websocket.common.JettyExtensionConfig; import org.eclipse.jetty.websocket.common.JettyExtensionConfig;
import org.eclipse.jetty.websocket.core.server.Negotiation; import org.eclipse.jetty.websocket.util.server.internal.ServerUpgradeRequest;
import org.eclipse.jetty.websocket.util.server.internal.ServletUpgradeRequest;
public class JettyServerUpgradeRequest public class JettyServerUpgradeRequest implements UpgradeRequest
{ {
private final ServletUpgradeRequest upgradeRequest; private final ServerUpgradeRequest upgradeRequest;
JettyServerUpgradeRequest(ServletUpgradeRequest request) JettyServerUpgradeRequest(ServerUpgradeRequest request)
{ {
upgradeRequest = request; upgradeRequest = request;
} }
@Override
public List<HttpCookie> getCookies()
{
return upgradeRequest.getCookies();
}
@Override
public List<ExtensionConfig> getExtensions()
{
return upgradeRequest.getExtensions().stream().map(JettyExtensionConfig::new).collect(Collectors.toList());
}
@Override
public String getHeader(String name)
{
return upgradeRequest.getHeader(name);
}
@Override
public int getHeaderInt(String name)
{
return upgradeRequest.getHeaderInt(name);
}
@Override
public Map<String, List<String>> getHeaders()
{
return upgradeRequest.getHeadersMap();
}
@Override
public List<String> getHeaders(String name)
{
return upgradeRequest.getHeaders(name);
}
@Override
public String getHost()
{
return upgradeRequest.getHost();
}
@Override
public String getHttpVersion()
{
return upgradeRequest.getHttpVersion();
}
@Override
public String getMethod()
{
return upgradeRequest.getMethod();
}
@Override
public String getOrigin()
{
return upgradeRequest.getOrigin();
}
@Override
public Map<String, List<String>> getParameterMap()
{
return upgradeRequest.getParameterMap();
}
@Override
public String getProtocolVersion()
{
return upgradeRequest.getProtocolVersion();
}
@Override
public String getQueryString()
{
return upgradeRequest.getQueryString();
}
@Override
public URI getRequestURI()
{
return upgradeRequest.getRequestURI();
}
@Override
public HttpSession getSession()
{
return upgradeRequest.getSession();
}
@Override
public List<String> getSubProtocols()
{
return upgradeRequest.getSubProtocols();
}
@Override
public Principal getUserPrincipal()
{
return upgradeRequest.getUserPrincipal();
}
@Override
public boolean hasSubProtocol(String subprotocol)
{
return upgradeRequest.hasSubProtocol(subprotocol);
}
@Override
public boolean isSecure()
{
return upgradeRequest.isSecure();
}
/** /**
* @return The {@link X509Certificate} instance at request attribute "javax.servlet.request.X509Certificate" or null. * @return The {@link X509Certificate} instance at request attribute "javax.servlet.request.X509Certificate" or null.
*/ */
@ -55,70 +169,6 @@ public class JettyServerUpgradeRequest
return upgradeRequest.getCertificates(); return upgradeRequest.getCertificates();
} }
/**
* @return Request cookies
* @see HttpServletRequest#getCookies()
*/
public List<HttpCookie> getCookies()
{
return upgradeRequest.getCookies();
}
/**
* @return The extensions offered
* @see Negotiation#getOfferedExtensions()
*/
public List<ExtensionConfig> getExtensions()
{
return upgradeRequest.getExtensions().stream().map(JettyExtensionConfig::new).collect(Collectors.toList());
}
/**
* @param name Header name
* @return Header value or null
* @see HttpServletRequest#getHeader(String)
*/
public String getHeader(String name)
{
return upgradeRequest.getHeader(name);
}
/**
* @param name Header name
* @return Header value as integer or -1
* @see HttpServletRequest#getHeader(String)
*/
public int getHeaderInt(String name)
{
return upgradeRequest.getHeaderInt(name);
}
/**
* @return Map of headers
*/
public Map<String, List<String>> getHeadersMap()
{
return upgradeRequest.getHeadersMap();
}
/**
* @param name Header name
* @return List of header values or null
*/
public List<String> getHeaders(String name)
{
return upgradeRequest.getHeaders(name);
}
/**
* @return The requested host
* @see HttpServletRequest#getRequestURL()
*/
public String getHost()
{
return upgradeRequest.getHost();
}
/** /**
* @return Immutable version of {@link HttpServletRequest} * @return Immutable version of {@link HttpServletRequest}
*/ */
@ -127,15 +177,6 @@ public class JettyServerUpgradeRequest
return upgradeRequest.getHttpServletRequest(); return upgradeRequest.getHttpServletRequest();
} }
/**
* @return The HTTP protocol version
* @see HttpServletRequest#getProtocol()
*/
public String getHttpVersion()
{
return upgradeRequest.getHttpVersion();
}
/** /**
* @return The requested Locale * @return The requested Locale
* @see HttpServletRequest#getLocale() * @see HttpServletRequest#getLocale()
@ -164,49 +205,6 @@ public class JettyServerUpgradeRequest
return upgradeRequest.getLocalSocketAddress(); return upgradeRequest.getLocalSocketAddress();
} }
/**
* @return The requested method
* @see HttpServletRequest#getMethod()
*/
public String getMethod()
{
return upgradeRequest.getMethod();
}
/**
* @return The origin header value
*/
public String getOrigin()
{
return upgradeRequest.getOrigin();
}
/**
* @return The request parameter map
* @see ServletRequest#getParameterMap()
*/
public Map<String, List<String>> getParameterMap()
{
return upgradeRequest.getParameterMap();
}
/**
* @return WebSocket protocol version from "Sec-WebSocket-Version" header
*/
public String getProtocolVersion()
{
return upgradeRequest.getProtocolVersion();
}
/**
* @return The request query string
* @see HttpServletRequest#getQueryString()
*/
public String getQueryString()
{
return upgradeRequest.getQueryString();
}
/** /**
* @return The remote request address, which is typically an {@link InetSocketAddress}, but may be another derivation of {@link SocketAddress} * @return The remote request address, which is typically an {@link InetSocketAddress}, but may be another derivation of {@link SocketAddress}
* @see ServletRequest#getRemoteAddr() * @see ServletRequest#getRemoteAddr()
@ -225,15 +223,6 @@ public class JettyServerUpgradeRequest
return upgradeRequest.getRequestPath(); return upgradeRequest.getRequestPath();
} }
/**
* @return The request URI
* @see HttpServletRequest#getRequestURL()
*/
public URI getRequestURI()
{
return upgradeRequest.getRequestURI();
}
/** /**
* @param name Attribute name * @param name Attribute name
* @return Attribute value or null * @return Attribute value or null
@ -261,50 +250,6 @@ public class JettyServerUpgradeRequest
return upgradeRequest.getServletParameters(); return upgradeRequest.getServletParameters();
} }
/**
* @return The HttpSession, which may be null or invalidated
* @see HttpServletRequest#getSession(boolean)
*/
public HttpSession getSession()
{
return upgradeRequest.getSession();
}
/**
* @return Get WebSocket negotiation offered sub protocols
*/
public List<String> getSubProtocols()
{
return upgradeRequest.getSubProtocols();
}
/**
* @return The User's {@link Principal} or null
* @see HttpServletRequest#getUserPrincipal()
*/
public Principal getUserPrincipal()
{
return upgradeRequest.getUserPrincipal();
}
/**
* @param subprotocol A sub protocol name
* @return True if the sub protocol was offered
*/
public boolean hasSubProtocol(String subprotocol)
{
return upgradeRequest.hasSubProtocol(subprotocol);
}
/**
* @return True if the request is secure
* @see ServletRequest#isSecure()
*/
public boolean isSecure()
{
return upgradeRequest.isSecure();
}
/** /**
* @param role The user role * @param role The user role
* @return True if the requests user has the role * @return True if the requests user has the role

View File

@ -24,69 +24,105 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import org.eclipse.jetty.websocket.api.UpgradeResponse;
import org.eclipse.jetty.websocket.api.extensions.ExtensionConfig; import org.eclipse.jetty.websocket.api.extensions.ExtensionConfig;
import org.eclipse.jetty.websocket.common.JettyExtensionConfig; import org.eclipse.jetty.websocket.common.JettyExtensionConfig;
import org.eclipse.jetty.websocket.util.server.internal.ServletUpgradeResponse; import org.eclipse.jetty.websocket.util.server.internal.ServerUpgradeResponse;
public class JettyServerUpgradeResponse public class JettyServerUpgradeResponse implements UpgradeResponse
{ {
private ServletUpgradeResponse upgradeResponse; private final ServerUpgradeResponse upgradeResponse;
JettyServerUpgradeResponse(ServletUpgradeResponse response) JettyServerUpgradeResponse(ServerUpgradeResponse response)
{ {
upgradeResponse = response; upgradeResponse = response;
} }
@Override
public void addHeader(String name, String value) public void addHeader(String name, String value)
{ {
upgradeResponse.addHeader(name, value); upgradeResponse.addHeader(name, value);
} }
@Override
public void setHeader(String name, String value) public void setHeader(String name, String value)
{ {
upgradeResponse.setHeader(name, value); upgradeResponse.setHeader(name, value);
} }
public void setHeader(String name, List<String> values) @Override
{
upgradeResponse.setHeader(name, values);
}
public String getAcceptedSubProtocol() public String getAcceptedSubProtocol()
{ {
return upgradeResponse.getAcceptedSubProtocol(); return upgradeResponse.getAcceptedSubProtocol();
} }
@Override
public List<ExtensionConfig> getExtensions() public List<ExtensionConfig> getExtensions()
{ {
return upgradeResponse.getExtensions().stream().map(JettyExtensionConfig::new).collect(Collectors.toList()); return upgradeResponse.getExtensions().stream().map(JettyExtensionConfig::new).collect(Collectors.toList());
} }
@Override
public String getHeader(String name) public String getHeader(String name)
{ {
return upgradeResponse.getHeader(name); return upgradeResponse.getHeader(name);
} }
@Override
public Set<String> getHeaderNames() public Set<String> getHeaderNames()
{ {
return upgradeResponse.getHeaderNames(); return upgradeResponse.getHeaderNames();
} }
public Map<String, List<String>> getHeadersMap() @Override
public Map<String, List<String>> getHeaders()
{ {
return upgradeResponse.getHeadersMap(); return upgradeResponse.getHeadersMap();
} }
@Override
public List<String> getHeaders(String name) public List<String> getHeaders(String name)
{ {
return upgradeResponse.getHeaders(name); return upgradeResponse.getHeaders(name);
} }
@Override
public int getStatusCode() public int getStatusCode()
{ {
return upgradeResponse.getStatusCode(); return upgradeResponse.getStatusCode();
} }
@Override
public void sendForbidden(String message) throws IOException
{
upgradeResponse.sendForbidden(message);
}
@Override
public void setAcceptedSubProtocol(String protocol)
{
upgradeResponse.setAcceptedSubProtocol(protocol);
}
@Override
public void setExtensions(List<ExtensionConfig> configs)
{
upgradeResponse.setExtensions(configs.stream()
.map(c -> new org.eclipse.jetty.websocket.core.ExtensionConfig(c.getName(), c.getParameters()))
.collect(Collectors.toList()));
}
@Override
public void setStatusCode(int statusCode)
{
upgradeResponse.setStatusCode(statusCode);
}
public void setHeader(String name, List<String> values)
{
upgradeResponse.setHeader(name, values);
}
public boolean isCommitted() public boolean isCommitted()
{ {
return upgradeResponse.isCommitted(); return upgradeResponse.isCommitted();
@ -96,26 +132,4 @@ public class JettyServerUpgradeResponse
{ {
upgradeResponse.sendError(statusCode, message); upgradeResponse.sendError(statusCode, message);
} }
public void sendForbidden(String message) throws IOException
{
upgradeResponse.sendForbidden(message);
}
public void setAcceptedSubProtocol(String protocol)
{
upgradeResponse.setAcceptedSubProtocol(protocol);
}
public void setExtensions(List<ExtensionConfig> configs)
{
upgradeResponse.setExtensions(configs.stream()
.map(c -> new org.eclipse.jetty.websocket.core.ExtensionConfig(c.getName(), c.getParameters()))
.collect(Collectors.toList()));
}
public void setStatusCode(int statusCode)
{
upgradeResponse.setStatusCode(statusCode);
}
} }

View File

@ -35,8 +35,8 @@ import org.eclipse.jetty.websocket.core.server.WebSocketServerComponents;
import org.eclipse.jetty.websocket.server.internal.JettyServerFrameHandlerFactory; import org.eclipse.jetty.websocket.server.internal.JettyServerFrameHandlerFactory;
import org.eclipse.jetty.websocket.util.server.WebSocketUpgradeFilter; import org.eclipse.jetty.websocket.util.server.WebSocketUpgradeFilter;
import org.eclipse.jetty.websocket.util.server.internal.FrameHandlerFactory; import org.eclipse.jetty.websocket.util.server.internal.FrameHandlerFactory;
import org.eclipse.jetty.websocket.util.server.internal.ServletUpgradeRequest; import org.eclipse.jetty.websocket.util.server.internal.ServerUpgradeRequest;
import org.eclipse.jetty.websocket.util.server.internal.ServletUpgradeResponse; import org.eclipse.jetty.websocket.util.server.internal.ServerUpgradeResponse;
import org.eclipse.jetty.websocket.util.server.internal.WebSocketCreator; import org.eclipse.jetty.websocket.util.server.internal.WebSocketCreator;
import org.eclipse.jetty.websocket.util.server.internal.WebSocketMapping; import org.eclipse.jetty.websocket.util.server.internal.WebSocketMapping;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -276,7 +276,7 @@ public abstract class JettyWebSocketServlet extends HttpServlet
} }
@Override @Override
public Object createWebSocket(ServletUpgradeRequest req, ServletUpgradeResponse resp) public Object createWebSocket(ServerUpgradeRequest req, ServerUpgradeResponse resp)
{ {
return creator.createWebSocket(new JettyServerUpgradeRequest(req), new JettyServerUpgradeResponse(resp)); return creator.createWebSocket(new JettyServerUpgradeRequest(req), new JettyServerUpgradeResponse(resp));
} }

View File

@ -28,8 +28,8 @@ import org.eclipse.jetty.websocket.common.JettyWebSocketFrameHandler;
import org.eclipse.jetty.websocket.common.JettyWebSocketFrameHandlerFactory; import org.eclipse.jetty.websocket.common.JettyWebSocketFrameHandlerFactory;
import org.eclipse.jetty.websocket.core.FrameHandler; import org.eclipse.jetty.websocket.core.FrameHandler;
import org.eclipse.jetty.websocket.util.server.internal.FrameHandlerFactory; import org.eclipse.jetty.websocket.util.server.internal.FrameHandlerFactory;
import org.eclipse.jetty.websocket.util.server.internal.ServletUpgradeRequest; import org.eclipse.jetty.websocket.util.server.internal.ServerUpgradeRequest;
import org.eclipse.jetty.websocket.util.server.internal.ServletUpgradeResponse; import org.eclipse.jetty.websocket.util.server.internal.ServerUpgradeResponse;
public class JettyServerFrameHandlerFactory extends JettyWebSocketFrameHandlerFactory implements FrameHandlerFactory, LifeCycle.Listener public class JettyServerFrameHandlerFactory extends JettyWebSocketFrameHandlerFactory implements FrameHandlerFactory, LifeCycle.Listener
{ {
@ -45,7 +45,7 @@ public class JettyServerFrameHandlerFactory extends JettyWebSocketFrameHandlerFa
} }
@Override @Override
public FrameHandler newFrameHandler(Object websocketPojo, ServletUpgradeRequest upgradeRequest, ServletUpgradeResponse upgradeResponse) public FrameHandler newFrameHandler(Object websocketPojo, ServerUpgradeRequest upgradeRequest, ServerUpgradeResponse upgradeResponse)
{ {
JettyWebSocketFrameHandler frameHandler = super.newJettyFrameHandler(websocketPojo); JettyWebSocketFrameHandler frameHandler = super.newJettyFrameHandler(websocketPojo);
frameHandler.setUpgradeRequest(new UpgradeRequestAdapter(upgradeRequest)); frameHandler.setUpgradeRequest(new UpgradeRequestAdapter(upgradeRequest));

View File

@ -28,13 +28,13 @@ import java.util.stream.Collectors;
import org.eclipse.jetty.websocket.api.UpgradeRequest; import org.eclipse.jetty.websocket.api.UpgradeRequest;
import org.eclipse.jetty.websocket.api.extensions.ExtensionConfig; import org.eclipse.jetty.websocket.api.extensions.ExtensionConfig;
import org.eclipse.jetty.websocket.common.JettyExtensionConfig; import org.eclipse.jetty.websocket.common.JettyExtensionConfig;
import org.eclipse.jetty.websocket.util.server.internal.ServletUpgradeRequest; import org.eclipse.jetty.websocket.util.server.internal.ServerUpgradeRequest;
public class UpgradeRequestAdapter implements UpgradeRequest public class UpgradeRequestAdapter implements UpgradeRequest
{ {
private final ServletUpgradeRequest _servletRequest; private final ServerUpgradeRequest _servletRequest;
public UpgradeRequestAdapter(ServletUpgradeRequest servletRequest) public UpgradeRequestAdapter(ServerUpgradeRequest servletRequest)
{ {
_servletRequest = servletRequest; _servletRequest = servletRequest;
} }

View File

@ -27,13 +27,13 @@ import java.util.stream.Collectors;
import org.eclipse.jetty.websocket.api.UpgradeResponse; import org.eclipse.jetty.websocket.api.UpgradeResponse;
import org.eclipse.jetty.websocket.api.extensions.ExtensionConfig; import org.eclipse.jetty.websocket.api.extensions.ExtensionConfig;
import org.eclipse.jetty.websocket.common.JettyExtensionConfig; import org.eclipse.jetty.websocket.common.JettyExtensionConfig;
import org.eclipse.jetty.websocket.util.server.internal.ServletUpgradeResponse; import org.eclipse.jetty.websocket.util.server.internal.ServerUpgradeResponse;
public class UpgradeResponseAdapter implements UpgradeResponse public class UpgradeResponseAdapter implements UpgradeResponse
{ {
private final ServletUpgradeResponse servletResponse; private final ServerUpgradeResponse servletResponse;
public UpgradeResponseAdapter(ServletUpgradeResponse servletResponse) public UpgradeResponseAdapter(ServerUpgradeResponse servletResponse)
{ {
this.servletResponse = servletResponse; this.servletResponse = servletResponse;
} }

View File

@ -34,6 +34,5 @@ public interface FrameHandlerFactory
* @return the API specific FrameHandler, or null if this implementation is unable to create * @return the API specific FrameHandler, or null if this implementation is unable to create
* the FrameHandler (allowing another {@link FrameHandlerFactory} to try) * the FrameHandler (allowing another {@link FrameHandlerFactory} to try)
*/ */
FrameHandler newFrameHandler(Object websocketPojo, ServletUpgradeRequest upgradeRequest, FrameHandler newFrameHandler(Object websocketPojo, ServerUpgradeRequest upgradeRequest, ServerUpgradeResponse upgradeResponse);
ServletUpgradeResponse upgradeResponse);
} }

View File

@ -46,7 +46,7 @@ import org.eclipse.jetty.websocket.core.server.Negotiation;
/** /**
* Holder of request data for a WebSocket upgrade request. * Holder of request data for a WebSocket upgrade request.
*/ */
public class ServletUpgradeRequest public class ServerUpgradeRequest
{ {
private final URI requestURI; private final URI requestURI;
private final String queryString; private final String queryString;
@ -56,7 +56,7 @@ public class ServletUpgradeRequest
private List<HttpCookie> cookies; private List<HttpCookie> cookies;
private Map<String, List<String>> parameterMap; private Map<String, List<String>> parameterMap;
public ServletUpgradeRequest(Negotiation negotiation) throws BadMessageException public ServerUpgradeRequest(Negotiation negotiation) throws BadMessageException
{ {
this.negotiation = negotiation; this.negotiation = negotiation;
HttpServletRequest httpRequest = negotiation.getRequest(); HttpServletRequest httpRequest = negotiation.getRequest();

View File

@ -36,12 +36,12 @@ import org.eclipse.jetty.websocket.core.server.Negotiation;
/** /**
* Servlet Specific UpgradeResponse implementation. * Servlet Specific UpgradeResponse implementation.
*/ */
public class ServletUpgradeResponse public class ServerUpgradeResponse
{ {
private final HttpServletResponse response; private final HttpServletResponse response;
private final Negotiation negotiation; private final Negotiation negotiation;
public ServletUpgradeResponse(Negotiation negotiation) public ServerUpgradeResponse(Negotiation negotiation)
{ {
this.negotiation = negotiation; this.negotiation = negotiation;
this.response = negotiation.getResponse(); this.response = negotiation.getResponse();

View File

@ -81,7 +81,7 @@ public class UpgradeHttpServletRequest implements HttpServletRequest
private final Map<String, Object> attributes = new HashMap<>(2); private final Map<String, Object> attributes = new HashMap<>(2);
private final List<Locale> locales = new ArrayList<>(2); private final List<Locale> locales = new ArrayList<>(2);
private HttpSession session; private final HttpSession session;
private final InetSocketAddress localAddress; private final InetSocketAddress localAddress;
private final String localName; private final String localName;

View File

@ -34,5 +34,5 @@ public interface WebSocketCreator
* @param resp the response details * @param resp the response details
* @return a websocket object to use, or null if no websocket should be created from this request. * @return a websocket object to use, or null if no websocket should be created from this request.
*/ */
Object createWebSocket(ServletUpgradeRequest req, ServletUpgradeResponse resp); Object createWebSocket(ServerUpgradeRequest req, ServerUpgradeResponse resp);
} }

View File

@ -265,8 +265,8 @@ public class WebSocketMapping implements Dumpable, LifeCycle.Listener
if (servletContext == null) if (servletContext == null)
throw new IllegalStateException("null servletContext from request"); throw new IllegalStateException("null servletContext from request");
ServletUpgradeRequest upgradeRequest = new ServletUpgradeRequest(negotiation); ServerUpgradeRequest upgradeRequest = new ServerUpgradeRequest(negotiation);
ServletUpgradeResponse upgradeResponse = new ServletUpgradeResponse(negotiation); ServerUpgradeResponse upgradeResponse = new ServerUpgradeResponse(negotiation);
AtomicReference<Object> result = new AtomicReference<>(); AtomicReference<Object> result = new AtomicReference<>();
((ContextHandler.Context)servletContext).getContextHandler().handle(() -> ((ContextHandler.Context)servletContext).getContextHandler().handle(() ->