Repository: activemq Updated Branches: refs/heads/master 4e766d92c -> 80f46a805
https://issues.apache.org/jira/browse/AMQ-6521 Adding support for Jetty 9.3 by re-adding in the logic to dynamically load the correct GzipHandler depending on the version Project: http://git-wip-us.apache.org/repos/asf/activemq/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/80f46a80 Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/80f46a80 Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/80f46a80 Branch: refs/heads/master Commit: 80f46a80560b2b2ed9fb418c33df75136bc3dc52 Parents: 4e766d9 Author: Christopher L. Shannon (cshannon) <christopher.l.shan...@gmail.com> Authored: Tue Nov 29 11:20:27 2016 -0500 Committer: Christopher L. Shannon (cshannon) <christopher.l.shan...@gmail.com> Committed: Tue Nov 29 11:38:36 2016 -0500 ---------------------------------------------------------------------- .../transport/http/HttpTransportServer.java | 26 ++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq/blob/80f46a80/activemq-http/src/main/java/org/apache/activemq/transport/http/HttpTransportServer.java ---------------------------------------------------------------------- diff --git a/activemq-http/src/main/java/org/apache/activemq/transport/http/HttpTransportServer.java b/activemq-http/src/main/java/org/apache/activemq/transport/http/HttpTransportServer.java index 02bf11f..f9774f3 100644 --- a/activemq-http/src/main/java/org/apache/activemq/transport/http/HttpTransportServer.java +++ b/activemq-http/src/main/java/org/apache/activemq/transport/http/HttpTransportServer.java @@ -32,7 +32,6 @@ import org.eclipse.jetty.server.Handler; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; -import org.eclipse.jetty.servlets.gzip.GzipHandler; public class HttpTransportServer extends WebTransportServerSupport { @@ -123,11 +122,34 @@ public class HttpTransportServer extends WebTransportServerSupport { private int getConnectorLocalPort() throws Exception { return (Integer)connector.getClass().getMethod("getLocalPort").invoke(connector); } + private void addGzipHandler(ServletContextHandler contextHandler) throws Exception { - Handler handler = new GzipHandler(); + Handler handler = null; + try { + handler = (Handler) forName("org.eclipse.jetty.server.handler.GzipHandler").newInstance(); + } catch (Throwable t) { + handler = (Handler) forName("org.eclipse.jetty.servlets.gzip.GzipHandler").newInstance(); + } contextHandler.setHandler(handler); } + private Class<?> forName(String name) throws ClassNotFoundException { + Class<?> clazz = null; + ClassLoader loader = Thread.currentThread().getContextClassLoader(); + if (loader != null) { + try { + clazz = loader.loadClass(name); + } catch (ClassNotFoundException e) { + // ignore + } + } + if (clazz == null) { + clazz = HttpTransportServer.class.getClassLoader().loadClass(name); + } + + return clazz; + } + @Override protected void doStop(ServiceStopper stopper) throws Exception { Server temp = server;