Repository: incubator-wave Updated Branches: refs/heads/master 83c084127 -> 29f3d346c
Updates to use jetty 9.2.14 Project: http://git-wip-us.apache.org/repos/asf/incubator-wave/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-wave/commit/22c0dcd9 Tree: http://git-wip-us.apache.org/repos/asf/incubator-wave/tree/22c0dcd9 Diff: http://git-wip-us.apache.org/repos/asf/incubator-wave/diff/22c0dcd9 Branch: refs/heads/master Commit: 22c0dcd9d5178b7e28061ea810b1939ba7546011 Parents: 83c0841 Author: Yuri Zelikov <[email protected]> Authored: Thu May 5 18:00:16 2016 +0300 Committer: Yuri Zelikov <[email protected]> Committed: Fri May 6 12:29:35 2016 +0300 ---------------------------------------------------------------------- wave/build.gradle | 36 +++++++-------- .../org/waveprotocol/box/server/ServerMain.java | 46 +++----------------- .../box/server/rpc/ServerRpcProvider.java | 22 +++++++++- 3 files changed, 43 insertions(+), 61 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/22c0dcd9/wave/build.gradle ---------------------------------------------------------------------- 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 @@ dependencies { [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] http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/22c0dcd9/wave/src/main/java/org/waveprotocol/box/server/ServerMain.java ---------------------------------------------------------------------- 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.google.inject.name.Names; 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.version.HashedVersionFactory; 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 @@ public class ServerMain { 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 @@ public class ServerMain { 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); http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/22c0dcd9/wave/src/main/java/org/waveprotocol/box/server/rpc/ServerRpcProvider.java ---------------------------------------------------------------------- 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.config.service.AtmosphereHandlerService; 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 @@ public class ServerRpcProvider { } /** - * @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 class ServerRpcProvider { 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)); + } }
