Index: pom.xml =================================================================== --- pom.xml (revision 2519) +++ pom.xml (working copy) @@ -116,5 +116,10 @@ + + org.mortbay.jetty + jetty-ajp + ${jetty.version} + \ No newline at end of file Index: src/main/java/org/sonar/application/JettyEmbedder.java =================================================================== --- src/main/java/org/sonar/application/JettyEmbedder.java (revision 2519) +++ src/main/java/org/sonar/application/JettyEmbedder.java (working copy) @@ -23,6 +23,7 @@ import org.apache.commons.lang.StringUtils; import org.mortbay.jetty.Handler; import org.mortbay.jetty.Server; +import org.mortbay.jetty.ajp.Ajp13SocketConnector; import org.mortbay.jetty.handler.ContextHandler; import org.mortbay.jetty.handler.ResourceHandler; import org.mortbay.jetty.nio.SelectChannelConnector; @@ -44,11 +45,15 @@ private String host; private int port; private String contextPath; + private boolean ajp13Activate; + private int ajp13Port; - public JettyEmbedder(String host, int port, String contextPath, URL configurationURL) throws Exception { + public JettyEmbedder(String host, int port, String contextPath, boolean ajp13Activate, int ajp13Port, URL configurationURL) throws Exception { this.host = host.trim(); this.port = port; this.contextPath=contextPath; + this.ajp13Activate = ajp13Activate; + this.ajp13Port = ajp13Port; server = new Server(); if (configurationURL == null) { @@ -58,6 +63,7 @@ System.setProperty("jetty.host", this.host); System.setProperty("jetty.port", String.valueOf(port)); System.setProperty("jetty.context", contextPath); + System.setProperty("jetty.ajp13Port", String.valueOf(ajp13Port)); XmlConfiguration configuration = new XmlConfiguration(configurationURL); configuration.configure(server); } @@ -107,6 +113,11 @@ connector.setStatsOn(false); connector.setAcceptors(2); connector.setConfidentialPort(8443); + if (ajp13Activate) { + Ajp13SocketConnector connector2 = new Ajp13SocketConnector(); + connector2.setPort(ajp13Port); + server.addConnector(connector2); + } server.addConnector(connector); server.setStopAtShutdown(true); server.setSendServerVersion(false); Index: src/main/java/org/sonar/application/StartServer.java =================================================================== --- src/main/java/org/sonar/application/StartServer.java (revision 2519) +++ src/main/java/org/sonar/application/StartServer.java (working copy) @@ -27,6 +27,8 @@ private static final String DEFAULT_WEB_HOST = "0.0.0.0"; private static final int DEFAULT_WEB_PORT = 9000; private static final String DEFAULT_WEB_CONTEXT = "/"; + private static final boolean DEFAULT_AJP13_DEACTIVATE = false; + private static final int DEFAULT_AJP13_PORT = 9001; public static void main(String[] args) throws Exception { configureLogback(); @@ -35,7 +37,9 @@ String host = configuration.getString("sonar.web.host", DEFAULT_WEB_HOST); int port = configuration.getInt("sonar.web.port", DEFAULT_WEB_PORT); String context = configuration.getString("sonar.web.context", DEFAULT_WEB_CONTEXT); - JettyEmbedder jetty = new JettyEmbedder(host, port, context, StartServer.class.getResource("/jetty.xml")); + boolean ajp13Activate = configuration.getBoolean("sonar.ajp13.activate", DEFAULT_AJP13_DEACTIVATE); + int ajp13Port = configuration.getInt("sonar.ajp13.port", DEFAULT_AJP13_PORT); + JettyEmbedder jetty = new JettyEmbedder(host, port, context, ajp13Activate, ajp13Port, StartServer.class.getResource("/jetty.xml")); jetty.start(); Thread.currentThread().join(); } Index: src/test/java/org/sonar/application/JettyEmbedderTest.java =================================================================== --- src/test/java/org/sonar/application/JettyEmbedderTest.java (revision 2519) +++ src/test/java/org/sonar/application/JettyEmbedderTest.java (working copy) @@ -29,10 +29,11 @@ @Test public void xmlConfigurationShouldAccessToSomeSystemProperties() throws Exception { // useful to set the port into the XML file - new JettyEmbedder("127.0.0.1", 9999, "/", JettyEmbedderTest.class.getResource("/org/sonar/application/jetty-test.xml")); + new JettyEmbedder("127.0.0.1", 9999, "/", false, 10000, JettyEmbedderTest.class.getResource("/org/sonar/application/jetty-test.xml")); assertEquals("127.0.0.1", System.getProperty("jetty.host")); assertEquals("9999", System.getProperty("jetty.port")); assertEquals("/", System.getProperty("jetty.context")); + assertEquals("10000", System.getProperty("jetty.ajp13Port")); } @Test