Updates to use jetty 9.2.14
diff --git a/wave/build.gradle b/wave/build.gradle
index bffd82e..362f137 100644
--- a/wave/build.gradle
+++ b/wave/build.gradle
@@ -147,24 +147,24 @@
[group: "org.atmosphere", name: "atmosphere-guice", version: "0.8.3"], // [?, ?]
[group: "org.atmosphere", name: "atmosphere-runtime", version: "2.1.0"], // [?, ?]
[group: "org.bouncycastle", name: "bcprov-jdk16", version: "1.45"], // [?, ?]
- [group: "org.eclipse.jetty", name: "jetty-annotations", version: "9.1.1.v20140108"], // [?, ?]
- [group: "org.eclipse.jetty", name: "jetty-client", version: "9.1.1.v20140108"], // [?, ?]
- [group: "org.eclipse.jetty", name: "jetty-continuation", version: "9.1.1.v20140108"], // [?, ?]
- [group: "org.eclipse.jetty", name: "jetty-http", version: "9.1.1.v20140108"], // [?, ?]
- [group: "org.eclipse.jetty", name: "jetty-io", version: "9.1.1.v20140108"], // [?, ?]
- [group: "org.eclipse.jetty", name: "jetty-proxy", version: "9.1.1.v20140108"], // [?, ?]
- [group: "org.eclipse.jetty", name: "jetty-security", version: "9.1.1.v20140108"], // [?, ?]
- [group: "org.eclipse.jetty", name: "jetty-server", version: "9.1.1.v20140108"], // [?, ?]
- [group: "org.eclipse.jetty", name: "jetty-servlet", version: "9.1.1.v20140108"], // [?, ?]
- [group: "org.eclipse.jetty", name: "jetty-servlets", version: "9.1.1.v20140108"], // [?, ?]
- [group: "org.eclipse.jetty", name: "jetty-util", version: "9.1.1.v20140108"], // [?, ?]
- [group: "org.eclipse.jetty", name: "jetty-webapp", version: "9.1.1.v20140108"], // [?, ?]
- [group: "org.eclipse.jetty", name: "jetty-xml", version: "9.1.1.v20140108"], // [?, ?]
- [group: "org.eclipse.jetty.websocket", name: "websocket-api", version: "9.1.1.v20140108"], // [?, ?]
- [group: "org.eclipse.jetty.websocket", name: "websocket-client", version: "9.1.1.v20140108"], // [?, ?]
- [group: "org.eclipse.jetty.websocket", name: "websocket-common", version: "9.1.1.v20140108"], // [?, ?]
- [group: "org.eclipse.jetty.websocket", name: "websocket-server", version: "9.1.1.v20140108"], // [?, ?]
- [group: "org.eclipse.jetty.websocket", name: "websocket-servlet", version: "9.1.1.v20140108"], // [?, ?]
+ [group: "org.eclipse.jetty", name: "jetty-annotations", version: "9.2.14.v20151106"], // [?, ?]
+ [group: "org.eclipse.jetty", name: "jetty-client", version: "9.2.14.v20151106"], // [?, ?]
+ [group: "org.eclipse.jetty", name: "jetty-continuation", version: "9.2.14.v20151106"], // [?, ?]
+ [group: "org.eclipse.jetty", name: "jetty-http", version: "9.2.14.v20151106"], // [?, ?]
+ [group: "org.eclipse.jetty", name: "jetty-io", version: "9.2.14.v20151106"], // [?, ?]
+ [group: "org.eclipse.jetty", name: "jetty-proxy", version: "9.2.14.v20151106"], // [?, ?]
+ [group: "org.eclipse.jetty", name: "jetty-security", version: "9.2.14.v20151106"], // [?, ?]
+ [group: "org.eclipse.jetty", name: "jetty-server", version: "9.2.14.v20151106"], // [?, ?]
+ [group: "org.eclipse.jetty", name: "jetty-servlet", version: "9.2.14.v20151106"], // [?, ?]
+ [group: "org.eclipse.jetty", name: "jetty-servlets", version: "9.2.14.v20151106"], // [?, ?]
+ [group: "org.eclipse.jetty", name: "jetty-util", version: "9.2.14.v20151106"], // [?, ?]
+ [group: "org.eclipse.jetty", name: "jetty-webapp", version: "9.2.14.v20151106"], // [?, ?]
+ [group: "org.eclipse.jetty", name: "jetty-xml", version: "9.2.14.v20151106"], // [?, ?]
+ [group: "org.eclipse.jetty.websocket", name: "websocket-api", version: "9.2.14.v20151106"], // [?, ?]
+ [group: "org.eclipse.jetty.websocket", name: "websocket-client", version: "9.2.14.v20151106"], // [?, ?]
+ [group: "org.eclipse.jetty.websocket", name: "websocket-common", version: "9.2.14.v20151106"], // [?, ?]
+ [group: "org.eclipse.jetty.websocket", name: "websocket-server", version: "9.2.14.v20151106"], // [?, ?]
+ [group: "org.eclipse.jetty.websocket", name: "websocket-servlet", version: "9.2.14.v20151106"], // [?, ?]
[group: "org.gnu.inet", name: "libidn", version: "1.15"], // [?, ?]
[group: "org.igniterealtime", name: "tinder", version: "1.2.3"], // [1/2016, 6/2016]
[group: "org.igniterealtime.whack", name: "core", version: "2.0.0"], // [1/2016, 6/2016]
diff --git a/wave/src/main/java/org/waveprotocol/box/server/ServerMain.java b/wave/src/main/java/org/waveprotocol/box/server/ServerMain.java
index 14e2491..d258f9c 100644
--- a/wave/src/main/java/org/waveprotocol/box/server/ServerMain.java
+++ b/wave/src/main/java/org/waveprotocol/box/server/ServerMain.java
@@ -26,7 +26,6 @@
import com.typesafe.config.Config;
import com.typesafe.config.ConfigFactory;
import org.apache.commons.configuration.ConfigurationException;
-import org.eclipse.jetty.proxy.ProxyServlet;
import org.waveprotocol.box.common.comms.WaveClientRpc.ProtocolWaveClientRpc;
import org.waveprotocol.box.server.authentication.AccountStoreHolder;
import org.waveprotocol.box.server.authentication.SessionManager;
@@ -67,15 +66,7 @@
import org.waveprotocol.wave.model.wave.ParticipantIdUtil;
import org.waveprotocol.wave.util.logging.Log;
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServlet;
import java.io.File;
-import java.io.IOException;
-import java.util.Collections;
-import java.util.Map;
/**
* Wave Server entrypoint.
@@ -84,33 +75,6 @@
private static final Log LOG = Log.get(ServerMain.class);
- @SuppressWarnings("serial")
- @Singleton
- public static class GadgetProxyServlet extends HttpServlet {
-
- ProxyServlet.Transparent proxyServlet;
-
- @Inject
- public GadgetProxyServlet(Config config) {
- String gadgetServerHostname = config.getString("core.gadget_server_hostname");
- int gadgetServerPort = config.getInt("core.gadget_server_port");
- LOG.info("Starting GadgetProxyServlet for " + gadgetServerHostname + ":" + gadgetServerPort);
- proxyServlet = new ProxyServlet.Transparent(
- "http://" + gadgetServerHostname + ":" + gadgetServerPort + "/gadgets",
- "/gadgets");
- }
-
- @Override
- public void init(ServletConfig config) throws ServletException {
- proxyServlet.init(config);
- }
-
- @Override
- public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
- proxyServlet.service(req, res);
- }
- }
-
public static void main(String... args) {
try {
Module coreSettings = new AbstractModule() {
@@ -230,11 +194,11 @@
server.addServlet("/iniavatars/*", InitialsAvatarsServlet.class);
server.addServlet("/waveref/*", WaveRefServlet.class);
- String gadgetHostName = config.getString("core.gadget_server_hostname");
- int port = config.getInt("core.gadget_server_port");
- Map<String, String> initParams =
- Collections.singletonMap("hostHeader", gadgetHostName + ":" + port);
- server.addServlet("/gadgets/*", GadgetProxyServlet.class, initParams);
+ String gadgetServerHostname = config.getString("core.gadget_server_hostname");
+ int gadgetServerPort = config.getInt("core.gadget_server_port");
+ LOG.info("Starting GadgetProxyServlet for " + gadgetServerHostname + ":" + gadgetServerPort);
+ server.addTransparentProxy("/gadgets/*",
+ "http://" + gadgetServerHostname + ":" + gadgetServerPort + "/gadgets", "/gadgets");
server.addServlet("/", WaveClientServlet.class);
diff --git a/wave/src/main/java/org/waveprotocol/box/server/rpc/ServerRpcProvider.java b/wave/src/main/java/org/waveprotocol/box/server/rpc/ServerRpcProvider.java
index b053870..4d43ebb 100755
--- a/wave/src/main/java/org/waveprotocol/box/server/rpc/ServerRpcProvider.java
+++ b/wave/src/main/java/org/waveprotocol/box/server/rpc/ServerRpcProvider.java
@@ -41,10 +41,10 @@
import org.atmosphere.cpr.*;
import org.atmosphere.guice.AtmosphereGuiceServlet;
import org.atmosphere.util.IOUtils;
+import org.eclipse.jetty.proxy.ProxyServlet;
import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
-//import org.eclipse.jetty.server.nio.SelectChannelConnector;
import org.eclipse.jetty.server.session.HashSessionManager;
import org.eclipse.jetty.servlet.DefaultServlet;
import org.eclipse.jetty.servlet.ServletHolder;
@@ -482,7 +482,7 @@
}
/**
- * @return a list of {@link SelectChannelConnector} each bound to a host:port
+ * @return a list of {@link Connector} each bound to a host:port
* pair form the list addresses.
*/
private List<Connector> getSelectChannelConnectors(
@@ -823,4 +823,22 @@
public void addFilter(String urlPattern, Class<? extends Filter> filter) {
filterRegistry.add(new Pair<String, Class<? extends Filter>>(urlPattern, filter));
}
+
+ /**
+ * Add a transparent proxy to the servlet registry. The servlet will proxy to the
+ * specified URL pattern.
+ * @param urlPattern the URL pattern for paths. Eg, '/foo', '/foo/*'.
+ * @param proxyTo the URL to proxy to.
+ * @param prefix the prefix that should be proxied.
+ */
+ public void addTransparentProxy(String urlPattern, String proxyTo, String prefix) {
+ Preconditions.checkNotNull(urlPattern);
+ Preconditions.checkNotNull(proxyTo);
+ Preconditions.checkNotNull(prefix);
+
+ ServletHolder proxy = new ServletHolder(ProxyServlet.Transparent.class);
+ proxy.setInitParameter("proxyTo", proxyTo);
+ proxy.setInitParameter("prefix", prefix);
+ servletRegistry.add(Pair.of(urlPattern, proxy));
+ }
}