Repository: wicket Updated Branches: refs/heads/master c1c0785ee -> a56fe3e9c
WICKET-5990 Upgrade Jetty usage in Wicket tests/quickstart to Jetty 9.3.x Upgrade Jetty to 9.3 WebSocket-Native: Remove the module for Jetty 7.x and 9.x Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/a56fe3e9 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/a56fe3e9 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/a56fe3e9 Branch: refs/heads/master Commit: a56fe3e9c9393f26a8aa4844d14fac29d2fdae21 Parents: c1c0785 Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Sat Oct 3 14:29:56 2015 +0200 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Sat Oct 3 14:32:03 2015 +0200 ---------------------------------------------------------------------- pom.xml | 27 +++- .../http/BufferedHttpServletResponse.java | 9 +- .../http/mock/MockHttpServletRequest.java | 51 ++++++++ .../http/mock/MockHttpServletResponse.java | 20 ++- .../protocol/http/mock/MockServletContext.java | 108 +--------------- .../form/upload/FileUploadServletPartTest.java | 6 + wicket-examples/pom.xml | 2 +- wicket-native-websocket/pom.xml | 2 - .../protocol/ws/api/ServletRequestCopy.java | 19 +++ .../wicket-native-websocket-jetty9/pom.xml | 50 -------- .../ws/jetty9/Jetty9UpgradeHttpRequest.java | 74 ----------- .../ws/jetty9/Jetty9WebSocketConnection.java | 101 --------------- .../ws/jetty9/Jetty9WebSocketFilter.java | 125 ------------------- .../ws/jetty9/Jetty9WebSocketProcessor.java | 96 -------------- .../util/license/ApacheLicenceHeaderTest.java | 34 ----- 15 files changed, 132 insertions(+), 592 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/a56fe3e9/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index b648e95..94d923d 100644 --- a/pom.xml +++ b/pom.xml @@ -129,7 +129,6 @@ <!-- Project Versions --> <jacoco.version>0.7.5.201505241946</jacoco.version> <jetty.version>8.1.16.v20140903</jetty.version> - <jetty9.version>9.0.7.v20131107</jetty9.version> <joda-time.version>2.7</joda-time.version> <junit.version>4.12</junit.version> <spring.version>4.2.1.RELEASE</spring.version> @@ -188,10 +187,28 @@ <scope>provided</scope> </dependency> <dependency> - <groupId>org.eclipse.jetty.aggregate</groupId> - <artifactId>jetty-all-server</artifactId> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-server</artifactId> <version>${jetty.version}</version> - <scope>provided</scope> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-webapp</artifactId> + <version>${jetty.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-util</artifactId> + <version>${jetty.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-jmx</artifactId> + <version>${jetty.version}</version> + <scope>test</scope> </dependency> <dependency> @@ -1034,7 +1051,7 @@ </configuration> </plugin> <plugin> - <groupId>org.mortbay.jetty</groupId> + <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>${jetty.version}</version> <configuration> http://git-wip-us.apache.org/repos/asf/wicket/blob/a56fe3e9/wicket-core/src/main/java/org/apache/wicket/protocol/http/BufferedHttpServletResponse.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/BufferedHttpServletResponse.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/BufferedHttpServletResponse.java index 7d10779..234a291 100644 --- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/BufferedHttpServletResponse.java +++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/BufferedHttpServletResponse.java @@ -339,6 +339,13 @@ class BufferedHttpServletResponse implements HttpServletResponse // ignored will be calculated when the buffer is really streamed. } + @Override + public void setContentLengthLong(long len) + { + isOpen(); + // ignored will be calculated when the buffer is really streamed. + } + /** * @see javax.servlet.ServletResponse#setContentType(java.lang.String) */ @@ -644,4 +651,4 @@ class BufferedHttpServletResponse implements HttpServletResponse { return Collections.unmodifiableCollection(headers.keySet()); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/wicket/blob/a56fe3e9/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java index cf8087d..331c206 100755 --- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java +++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java @@ -43,6 +43,7 @@ import java.util.Map; import javax.servlet.AsyncContext; import javax.servlet.DispatcherType; +import javax.servlet.ReadListener; import javax.servlet.RequestDispatcher; import javax.servlet.ServletContext; import javax.servlet.ServletException; @@ -53,6 +54,7 @@ import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; +import javax.servlet.http.HttpUpgradeHandler; import javax.servlet.http.Part; import org.apache.commons.fileupload.FileUploadBase; @@ -428,6 +430,12 @@ public class MockHttpServletRequest implements HttpServletRequest return -1; } + @Override + public long getContentLengthLong() + { + return getContentLength(); + } + /** * If useMultiPartContentType set as true return the correct content-type. * @@ -595,9 +603,31 @@ public class MockHttpServletRequest implements HttpServletRequest return new ServletInputStream() { + private boolean isFinished = false; + private boolean isReady = true; + + @Override + public boolean isFinished() + { + return isFinished; + } + + @Override + public boolean isReady() + { + return isReady; + } + + @Override + public void setReadListener(ReadListener readListener) + { + } + @Override public int read() { + isFinished = true; + isReady = false; return bais.read(); } }; @@ -1110,6 +1140,21 @@ public class MockHttpServletRequest implements HttpServletRequest return getSession(true); } + @Override + public String changeSessionId() + { + final HttpSession oldSession = getSession(false); + if (oldSession == null) + { + throw new IllegalStateException("There is no active session associated with the current request"); + } + oldSession.invalidate(); + + final HttpSession newSession = getSession(true); + + return newSession.getId(); + } + /** * Get the session. * @@ -1239,6 +1284,12 @@ public class MockHttpServletRequest implements HttpServletRequest return parts.get(name); } + @Override + public <T extends HttpUpgradeHandler> T upgrade(Class<T> aClass) throws IOException, ServletException + { + return null; + } + public MockHttpServletRequest setPart(String name, Part part) { parts.put(name, part); return this; http://git-wip-us.apache.org/repos/asf/wicket/blob/a56fe3e9/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java index 5cb496c..44cbf2b 100755 --- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java +++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java @@ -34,6 +34,7 @@ import java.util.Set; import java.util.TimeZone; import javax.servlet.ServletOutputStream; +import javax.servlet.WriteListener; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletResponse; @@ -442,6 +443,17 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu servletStream = new ServletOutputStream() { @Override + public boolean isReady() + { + return true; + } + + @Override + public void setWriteListener(WriteListener writeListener) + { + } + + @Override public void write(int b) { byteStream.write(b); @@ -645,6 +657,12 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu setIntHeader("Content-Length", length); } + @Override + public void setContentLengthLong(long len) + { + setContentLength((int) len); + } + /** * Set the content type. * @@ -876,4 +894,4 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu } webResponse.setStatus(status); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/wicket/blob/a56fe3e9/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockServletContext.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockServletContext.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockServletContext.java index c9304e9..fd00487 100755 --- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockServletContext.java +++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockServletContext.java @@ -707,6 +707,12 @@ public class MockServletContext implements ServletContext { } + @Override + public String getVirtualServerName() + { + return "WicketTester 8.x"; + } + /** * NOT USED - Servlet spec requires that this always returns null. * @@ -834,106 +840,4 @@ public class MockServletContext implements ServletContext return null; } } - - // @formatter:off - /* TODO JAVA6,SERVLET3.0 - * servlet 3.0 stuff - * - public int getEffectiveMajorVersion() - { - return 0; - } - - public int getEffectiveMinorVersion() - { - return 0; - } - - public boolean setInitParameter(String name, String value) - { - return false; - } - - public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, String className) - { - return null; - } - - public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, Filter filter) - { - return null; - } - - public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, - Class<? extends Filter> filterClass) - { - return null; - } - - public <T extends Filter> T createFilter(Class<T> clazz) throws ServletException - { - return null; - } - - public FilterRegistration getFilterRegistration(String filterName) - { - return null; - } - - public Map<String, ? extends FilterRegistration> getFilterRegistrations() - { - return null; - } - - public SessionCookieConfig getSessionCookieConfig() - { - return null; - } - - public void setSessionTrackingModes(Set<SessionTrackingMode> sessionTrackingModes) - { - } - - public Set<SessionTrackingMode> getDefaultSessionTrackingModes() - { - return null; - } - - public Set<SessionTrackingMode> getEffectiveSessionTrackingModes() - { - return null; - } - - public void addListener(String className) - { - } - - public <T extends EventListener> void addListener(T t) - { - } - - public void addListener(Class<? extends EventListener> listenerClass) - { - } - - public <T extends EventListener> T createListener(Class<T> clazz) throws ServletException - { - return null; - } - - public JspConfigDescriptor getJspConfigDescriptor() - { - return null; - } - - public ClassLoader getClassLoader() - { - return null; - } - - public void declareRoles(String... roleNames) - { - } - */ - // @formatter:on } http://git-wip-us.apache.org/repos/asf/wicket/blob/a56fe3e9/wicket-core/src/test/java/org/apache/wicket/markup/html/form/upload/FileUploadServletPartTest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/upload/FileUploadServletPartTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/upload/FileUploadServletPartTest.java index bd32c9e..629371f 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/upload/FileUploadServletPartTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/upload/FileUploadServletPartTest.java @@ -112,6 +112,12 @@ public class FileUploadServletPartTest extends WicketTestCase } @Override + public String getSubmittedFileName() + { + return getName(); + } + + @Override public long getSize() { return DATA.length; http://git-wip-us.apache.org/repos/asf/wicket/blob/a56fe3e9/wicket-examples/pom.xml ---------------------------------------------------------------------- diff --git a/wicket-examples/pom.xml b/wicket-examples/pom.xml index 955f286..027347c 100644 --- a/wicket-examples/pom.xml +++ b/wicket-examples/pom.xml @@ -236,7 +236,7 @@ <artifactId>maven-javadoc-plugin</artifactId> </plugin> <plugin> - <groupId>org.mortbay.jetty</groupId> + <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> </plugin> </plugins> http://git-wip-us.apache.org/repos/asf/wicket/blob/a56fe3e9/wicket-native-websocket/pom.xml ---------------------------------------------------------------------- diff --git a/wicket-native-websocket/pom.xml b/wicket-native-websocket/pom.xml index 99f311f..2a1d4ec 100644 --- a/wicket-native-websocket/pom.xml +++ b/wicket-native-websocket/pom.xml @@ -29,8 +29,6 @@ <description>Wicket Native WebSocket provides native integration for WebSocket support with Servlet web containers.</description> <modules> <module>wicket-native-websocket-core</module> - <module>wicket-native-websocket-jetty</module> - <module>wicket-native-websocket-jetty9</module> <module>wicket-native-websocket-tomcat</module> <module>wicket-native-websocket-javax</module> </modules> http://git-wip-us.apache.org/repos/asf/wicket/blob/a56fe3e9/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/ServletRequestCopy.java ---------------------------------------------------------------------- diff --git a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/ServletRequestCopy.java b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/ServletRequestCopy.java index 218b1f7..ceecb81 100644 --- a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/ServletRequestCopy.java +++ b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/ServletRequestCopy.java @@ -39,6 +39,7 @@ import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; +import javax.servlet.http.HttpUpgradeHandler; import javax.servlet.http.Part; /** @@ -243,6 +244,12 @@ public class ServletRequestCopy implements HttpServletRequest } @Override + public long getContentLengthLong() + { + return 0; + } + + @Override public String getContentType() { return null; @@ -422,6 +429,12 @@ public class ServletRequestCopy implements HttpServletRequest } @Override + public String changeSessionId() + { + return null; + } + + @Override public boolean isRequestedSessionIdValid() { return false; @@ -474,6 +487,12 @@ public class ServletRequestCopy implements HttpServletRequest } @Override + public <T extends HttpUpgradeHandler> T upgrade(Class<T> handlerClass) throws IOException, ServletException + { + return null; + } + + @Override public StringBuffer getRequestURL() { return requestURL; } http://git-wip-us.apache.org/repos/asf/wicket/blob/a56fe3e9/wicket-native-websocket/wicket-native-websocket-jetty9/pom.xml ---------------------------------------------------------------------- diff --git a/wicket-native-websocket/wicket-native-websocket-jetty9/pom.xml b/wicket-native-websocket/wicket-native-websocket-jetty9/pom.xml deleted file mode 100644 index b121fc8..0000000 --- a/wicket-native-websocket/wicket-native-websocket-jetty9/pom.xml +++ /dev/null @@ -1,50 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.apache.wicket</groupId> - <artifactId>wicket-native-websocket</artifactId> - <version>7.1.0-SNAPSHOT</version> - <relativePath>../pom.xml</relativePath> - </parent> - <artifactId>wicket-native-websocket-jetty9</artifactId> - <packaging>jar</packaging> - <name>Wicket Native WebSocket Jetty 9</name> - <description>Provides the code specific to integrate with Jetty 9 web container</description> - <dependencyManagement> - <dependencies> - <dependency> - <groupId>org.eclipse.jetty.websocket</groupId> - <artifactId>websocket-server</artifactId> - <version>${jetty9.version}</version> - <scope>provided</scope> - </dependency> - </dependencies> - </dependencyManagement> - <dependencies> - <dependency> - <groupId>org.eclipse.jetty.websocket</groupId> - <artifactId>websocket-server</artifactId> - </dependency> - <dependency> - <groupId>org.apache.wicket</groupId> - <artifactId>wicket-native-websocket-core</artifactId> - </dependency> - </dependencies> -</project> http://git-wip-us.apache.org/repos/asf/wicket/blob/a56fe3e9/wicket-native-websocket/wicket-native-websocket-jetty9/src/main/java/org/apache/wicket/protocol/ws/jetty9/Jetty9UpgradeHttpRequest.java ---------------------------------------------------------------------- diff --git a/wicket-native-websocket/wicket-native-websocket-jetty9/src/main/java/org/apache/wicket/protocol/ws/jetty9/Jetty9UpgradeHttpRequest.java b/wicket-native-websocket/wicket-native-websocket-jetty9/src/main/java/org/apache/wicket/protocol/ws/jetty9/Jetty9UpgradeHttpRequest.java deleted file mode 100644 index 2ac8dac..0000000 --- a/wicket-native-websocket/wicket-native-websocket-jetty9/src/main/java/org/apache/wicket/protocol/ws/jetty9/Jetty9UpgradeHttpRequest.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.wicket.protocol.ws.jetty9; - -import java.lang.reflect.Field; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletRequestWrapper; - -import org.eclipse.jetty.websocket.api.UpgradeRequest; -import org.eclipse.jetty.websocket.servlet.ServletUpgradeRequest; - -/** - * An HttpServletRequest that wraps the original HttpServletRequest - * hidden hard by Jetty 9.x UpgradeRequest. - */ -class Jetty9UpgradeHttpRequest extends HttpServletRequestWrapper -{ - private static final Field REQ; - static - { - try - { - REQ = ServletUpgradeRequest.class.getDeclaredField("req"); - } catch (NoSuchFieldException nsfx) - { - throw new IllegalStateException(ServletUpgradeRequest.class.getName() + - " has no 'req' field!", nsfx); - } - REQ.setAccessible(true); - } - - Jetty9UpgradeHttpRequest(UpgradeRequest upgradeRequest) - { - super(extractHttpRequest(upgradeRequest)); - } - - private static HttpServletRequest extractHttpRequest(UpgradeRequest upgradeRequest) - { - if (upgradeRequest instanceof ServletUpgradeRequest == false) - { - throw new IllegalArgumentException(Jetty9UpgradeHttpRequest.class.getName() + - " can work only with " + ServletUpgradeRequest.class.getName()); - } - - ServletUpgradeRequest servletWebSocketRequest = (ServletUpgradeRequest) upgradeRequest; - HttpServletRequest request; - try - { - request = (HttpServletRequest) REQ.get(servletWebSocketRequest); - } - catch (IllegalAccessException iax) - { - throw new IllegalStateException("Cannot get the HttpServletRequest after the protocol upgrade", iax); - } - - return request; - } - -} http://git-wip-us.apache.org/repos/asf/wicket/blob/a56fe3e9/wicket-native-websocket/wicket-native-websocket-jetty9/src/main/java/org/apache/wicket/protocol/ws/jetty9/Jetty9WebSocketConnection.java ---------------------------------------------------------------------- diff --git a/wicket-native-websocket/wicket-native-websocket-jetty9/src/main/java/org/apache/wicket/protocol/ws/jetty9/Jetty9WebSocketConnection.java b/wicket-native-websocket/wicket-native-websocket-jetty9/src/main/java/org/apache/wicket/protocol/ws/jetty9/Jetty9WebSocketConnection.java deleted file mode 100644 index 45fd3b1..0000000 --- a/wicket-native-websocket/wicket-native-websocket-jetty9/src/main/java/org/apache/wicket/protocol/ws/jetty9/Jetty9WebSocketConnection.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.wicket.protocol.ws.jetty9; - -import java.io.IOException; -import java.nio.ByteBuffer; - -import org.apache.wicket.protocol.ws.api.AbstractWebSocketConnection; -import org.apache.wicket.protocol.ws.api.AbstractWebSocketProcessor; -import org.apache.wicket.protocol.ws.api.IWebSocketConnection; -import org.apache.wicket.util.lang.Args; -import org.eclipse.jetty.websocket.api.Session; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * A wrapper around Jetty9's native WebSocketConnection. - * - * @since 6.2 - */ -public class Jetty9WebSocketConnection extends AbstractWebSocketConnection -{ - private static final Logger LOG = LoggerFactory.getLogger(Jetty9WebSocketConnection.class); - - private final Session session; - - /** - * Constructor. - * - * @param session - * the jetty websocket connection - */ - public Jetty9WebSocketConnection(Session session, AbstractWebSocketProcessor webSocketProcessor) - { - super(webSocketProcessor); - this.session = Args.notNull(session, "connection"); - } - - @Override - public boolean isOpen() - { - return session.isOpen(); - } - - @Override - public void close(int code, String reason) - { - if (isOpen()) - { - try - { - session.close(code, reason); - } catch (IOException iox) - { - LOG.error("An error occurred while closing WebSocket session", iox); - } - } - } - - @Override - public IWebSocketConnection sendMessage(String message) throws IOException - { - checkClosed(); - - session.getRemote().sendString(message); - return this; - } - - @Override - public IWebSocketConnection sendMessage(byte[] message, int offset, int length) - throws IOException - { - checkClosed(); - - ByteBuffer buf = ByteBuffer.wrap(message, offset, length); - session.getRemote().sendBytes(buf); - return this; - } - - private void checkClosed() - { - if (!isOpen()) - { - throw new IllegalStateException("The connection is closed."); - } - } -} http://git-wip-us.apache.org/repos/asf/wicket/blob/a56fe3e9/wicket-native-websocket/wicket-native-websocket-jetty9/src/main/java/org/apache/wicket/protocol/ws/jetty9/Jetty9WebSocketFilter.java ---------------------------------------------------------------------- diff --git a/wicket-native-websocket/wicket-native-websocket-jetty9/src/main/java/org/apache/wicket/protocol/ws/jetty9/Jetty9WebSocketFilter.java b/wicket-native-websocket/wicket-native-websocket-jetty9/src/main/java/org/apache/wicket/protocol/ws/jetty9/Jetty9WebSocketFilter.java deleted file mode 100644 index ed6ed1d..0000000 --- a/wicket-native-websocket/wicket-native-websocket-jetty9/src/main/java/org/apache/wicket/protocol/ws/jetty9/Jetty9WebSocketFilter.java +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.wicket.protocol.ws.jetty9; - -import org.apache.wicket.protocol.http.WebApplication; -import org.apache.wicket.protocol.ws.AbstractUpgradeFilter; -import org.eclipse.jetty.websocket.api.UpgradeRequest; -import org.eclipse.jetty.websocket.api.UpgradeResponse; -import org.eclipse.jetty.websocket.api.WebSocketPolicy; -import org.eclipse.jetty.websocket.server.WebSocketServerFactory; -import org.eclipse.jetty.websocket.servlet.WebSocketCreator; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.IOException; - -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -/** - * An upgrade filter that uses Jetty9's WebSocketServerFactory to decide whether to upgrade or not. - */ -public class Jetty9WebSocketFilter extends AbstractUpgradeFilter -{ - private static final Logger LOG = LoggerFactory.getLogger(Jetty9WebSocketFilter.class); - - private WebSocketServerFactory _webSocketFactory; - - public Jetty9WebSocketFilter() - { - super(); - } - - public Jetty9WebSocketFilter(WebApplication application) - { - super(application); - } - - @Override - public void init(final boolean isServlet, final FilterConfig filterConfig) - throws ServletException - { - super.init(isServlet, filterConfig); - - try - { - WebSocketPolicy serverPolicy = WebSocketPolicy.newServerPolicy(); - String bs = filterConfig.getInitParameter("inputBufferSize"); - if (bs != null) - serverPolicy.setInputBufferSize(Integer.parseInt(bs)); - String max = filterConfig.getInitParameter("maxIdleTime"); - if (max != null) - serverPolicy.setIdleTimeout(Integer.parseInt(max)); - - max = filterConfig.getInitParameter("maxMessageSize"); - if (max != null) - serverPolicy.setMaxMessageSize(Integer.parseInt(max)); - - _webSocketFactory = new WebSocketServerFactory(serverPolicy); - - _webSocketFactory.setCreator(new WebSocketCreator() - { - @Override - public Object createWebSocket(UpgradeRequest upgradeRequest, - UpgradeResponse upgradeResponse) - { - return new Jetty9WebSocketProcessor(upgradeRequest, upgradeResponse, - getApplication()); - } - }); - - _webSocketFactory.start(); - } - catch (ServletException x) - { - throw x; - } - catch (Exception x) - { - throw new ServletException(x); - } - } - - @Override - protected boolean acceptWebSocket(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException - { - return super.acceptWebSocket(req, resp) && - _webSocketFactory.acceptWebSocket(req, resp); - } - - /* ------------------------------------------------------------ */ - @Override - public void destroy() - { - try - { - if (_webSocketFactory != null) - { - _webSocketFactory.stop(); - } - } - catch (Exception x) - { - LOG.warn("A problem occurred while stopping the web socket factory", x); - } - - super.destroy(); - } -} http://git-wip-us.apache.org/repos/asf/wicket/blob/a56fe3e9/wicket-native-websocket/wicket-native-websocket-jetty9/src/main/java/org/apache/wicket/protocol/ws/jetty9/Jetty9WebSocketProcessor.java ---------------------------------------------------------------------- diff --git a/wicket-native-websocket/wicket-native-websocket-jetty9/src/main/java/org/apache/wicket/protocol/ws/jetty9/Jetty9WebSocketProcessor.java b/wicket-native-websocket/wicket-native-websocket-jetty9/src/main/java/org/apache/wicket/protocol/ws/jetty9/Jetty9WebSocketProcessor.java deleted file mode 100644 index 04c8ffb..0000000 --- a/wicket-native-websocket/wicket-native-websocket-jetty9/src/main/java/org/apache/wicket/protocol/ws/jetty9/Jetty9WebSocketProcessor.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.wicket.protocol.ws.jetty9; - -import org.apache.wicket.protocol.http.WebApplication; -import org.apache.wicket.protocol.ws.api.AbstractWebSocketProcessor; -import org.eclipse.jetty.websocket.api.Session; -import org.eclipse.jetty.websocket.api.UpgradeRequest; -import org.eclipse.jetty.websocket.api.UpgradeResponse; -import org.eclipse.jetty.websocket.api.WebSocketListener; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * An {@link org.apache.wicket.protocol.ws.api.IWebSocketProcessor processor} that integrates with - * Jetty 9.x {@link Session web socket} implementation. - * - * @since 6.2 - */ -public class Jetty9WebSocketProcessor extends AbstractWebSocketProcessor - implements - WebSocketListener -{ - private static final Logger LOG = LoggerFactory.getLogger(Jetty9WebSocketProcessor.class); - - /** - * Constructor. - * - * @param upgradeRequest - * the jetty upgrade request - * @param upgradeResponse - * the jetty upgrade response - * @param application - * the current Wicket Application - */ - public Jetty9WebSocketProcessor(final UpgradeRequest upgradeRequest, - final UpgradeResponse upgradeResponse, final WebApplication application) - { - super(new Jetty9UpgradeHttpRequest(upgradeRequest), application); - } - - @Override - public void onWebSocketConnect(Session session) - { - onConnect(new Jetty9WebSocketConnection(session, this)); - } - - @Override - public void onWebSocketText(String message) - { - onMessage(message); - } - - @Override - public void onWebSocketBinary(byte[] payload, int offset, int len) - { - onMessage(payload, offset, len); - } - - @Override - public void onWebSocketClose(int statusCode, String reason) - { - onClose(statusCode, reason); - } - - @Override - public void onWebSocketError(Throwable throwable) - { - LOG.error("An error occurred when using WebSocket.", throwable); - } - - @Override - public void onOpen(Object connection) - { - if (!(connection instanceof Session)) - { - throw new IllegalArgumentException(Jetty9WebSocketProcessor.class.getName() + - " can work only with " + Session.class.getName()); - } - onWebSocketConnect((Session)connection); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/wicket/blob/a56fe3e9/wicket-native-websocket/wicket-native-websocket-jetty9/src/test/java/org/apache/wicket/protocol/ws/util/license/ApacheLicenceHeaderTest.java ---------------------------------------------------------------------- diff --git a/wicket-native-websocket/wicket-native-websocket-jetty9/src/test/java/org/apache/wicket/protocol/ws/util/license/ApacheLicenceHeaderTest.java b/wicket-native-websocket/wicket-native-websocket-jetty9/src/test/java/org/apache/wicket/protocol/ws/util/license/ApacheLicenceHeaderTest.java deleted file mode 100644 index 9e3759d..0000000 --- a/wicket-native-websocket/wicket-native-websocket-jetty9/src/test/java/org/apache/wicket/protocol/ws/util/license/ApacheLicenceHeaderTest.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.wicket.protocol.ws.util.license; - -import org.apache.wicket.util.license.ApacheLicenseHeaderTestCase; - -/** - * Test that the license headers are in place in this project. The tests are run from - * {@link org.apache.wicket.util.license.ApacheLicenseHeaderTestCase}, but you can add project specific tests here if needed. - */ -public class ApacheLicenceHeaderTest extends ApacheLicenseHeaderTestCase -{ - /** - * Construct. - */ - public ApacheLicenceHeaderTest() - { - // addHeaders = true; - } -}
