void log(Tomcat tomcat) { Connector[] connectors = tomcat.getService().findConnectors(); for (Connector connector : connectors) { if (StringUtils.equalsIgnoreCase(connector.getScheme(), "http")) { logHttp(connector); } else { throw new IllegalArgumentException("Unsupported connector: " + connector); } } }
static void configure(Tomcat tomcat, Props props) { Connector httpConnector = newHttpConnector(props); tomcat.getService().addConnector(httpConnector); }
private String getPortsDescription(boolean localPort) { StringBuilder ports = new StringBuilder(); for (Connector connector : this.tomcat.getService().findConnectors()) { if (ports.length() != 0) { ports.append(' '); } int port = localPort ? connector.getLocalPort() : connector.getPort(); ports.append(port).append(" (").append(connector.getScheme()).append(')'); } return ports.toString(); }
private void checkThatConnectorsHaveStarted() { checkConnectorHasStarted(this.tomcat.getConnector()); for (Connector connector : this.tomcat.getService().findConnectors()) { checkConnectorHasStarted(connector); } }
void configure(Tomcat tomcat, Props props) { tomcat.setSilent(true); tomcat.getService().addLifecycleListener(new LifecycleLogger(Loggers.get(TomcatAccessLog.class))); configureLogbackAccess(tomcat, props); }
@Test public void logHttp() { Connector connector = newConnector("HTTP/1.1", "http"); when(tomcat.getService().findConnectors()).thenReturn(new Connector[] {connector}); underTest.log(tomcat); verify(logger).info("HTTP connector enabled on port 1234"); verifyNoMoreInteractions(logger); }
@Test public void unsupported_connector() { Connector connector = mock(Connector.class, Mockito.RETURNS_DEEP_STUBS); when(connector.getProtocol()).thenReturn("SPDY/1.1"); when(connector.getScheme()).thenReturn("spdy"); when(tomcat.getService().findConnectors()).thenReturn(new Connector[] {connector}); try { underTest.log(tomcat); fail(); } catch (IllegalArgumentException e) { // expected } }
@Override public void setup() { Connector connector = new Connector(Http11NioProtocol.class.getName()); connector.setPort(0); File baseDir = createTempDir("tomcat"); String baseDirPath = baseDir.getAbsolutePath(); this.tomcatServer = new Tomcat(); this.tomcatServer.setBaseDir(baseDirPath); this.tomcatServer.setPort(0); this.tomcatServer.getService().addConnector(connector); this.tomcatServer.setConnector(connector); }
@Test public void bind_to_specific_address() { Properties p = new Properties(); p.setProperty("sonar.web.port", "9000"); p.setProperty("sonar.web.host", "1.2.3.4"); TomcatConnectors.configure(tomcat, new Props(p)); verify(tomcat.getService()) .addConnector(argThat(c -> c.getScheme().equals("http") && c.getPort() == 9000 && ((InetAddress) c.getProperty("address")).getHostAddress().equals("1.2.3.4"))); }
@Test public void bind_to_all_addresses_by_default() { Properties p = new Properties(); p.setProperty("sonar.web.port", "9000"); TomcatConnectors.configure(tomcat, new Props(p)); verify(tomcat.getService()).addConnector(argThat(c -> c.getScheme().equals("http") && c.getPort() == 9000 && ((InetAddress) c.getProperty("address")).getHostAddress().equals("0.0.0.0"))); }
private void verifyHttpConnector(int expectedPort, Map<String, Object> expectedProps) { verify(tomcat.getService()).addConnector(argThat(c -> { if (!c.getScheme().equals("http")) { return false; } if (!c.getProtocol().equals(TomcatConnectors.HTTP_PROTOCOL)) { return false; } if (c.getPort() != expectedPort) { return false; } for (Map.Entry<String, Object> expectedProp : expectedProps.entrySet()) { if (!expectedProp.getValue().equals(c.getProperty(expectedProp.getKey()))) { return false; } } return true; })); } }
@Test public void test_max_post_size_for_http_connection() { Properties properties = new Properties(); Props props = new Props(properties); TomcatConnectors.configure(tomcat, props); verify(tomcat.getService()).addConnector(argThat(c -> c.getMaxPostSize() == -1)); }
@Test public void fail_with_IAE_on_unsupported_protocol() { Connector connector = newConnector("AJP/1.3", "ajp"); when(tomcat.getService().findConnectors()).thenReturn(new Connector[] {connector}); expectedException.expect(IllegalArgumentException.class); expectedException.expectMessage("Unsupported connector: Connector[AJP/1.3-1234]"); underTest.log(tomcat); }
@Override public WebServer getWebServer(ServletContextInitializer... initializers) { Tomcat tomcat = new Tomcat(); File baseDir = (this.baseDirectory != null) ? this.baseDirectory : createTempDir("tomcat"); tomcat.setBaseDir(baseDir.getAbsolutePath()); Connector connector = new Connector(this.protocol); tomcat.getService().addConnector(connector); customizeConnector(connector); tomcat.setConnector(connector); tomcat.getHost().setAutoDeploy(false); configureEngine(tomcat.getEngine()); for (Connector additionalConnector : this.additionalTomcatConnectors) { tomcat.getService().addConnector(additionalConnector); } prepareContext(tomcat.getHost(), initializers); return getTomcatWebServer(tomcat); }
@Override public WebServer getWebServer(HttpHandler httpHandler) { Tomcat tomcat = new Tomcat(); File baseDir = (this.baseDirectory != null) ? this.baseDirectory : createTempDir("tomcat"); tomcat.setBaseDir(baseDir.getAbsolutePath()); Connector connector = new Connector(this.protocol); tomcat.getService().addConnector(connector); customizeConnector(connector); tomcat.setConnector(connector); tomcat.getHost().setAutoDeploy(false); configureEngine(tomcat.getEngine()); TomcatHttpHandlerAdapter servlet = new TomcatHttpHandlerAdapter(httpHandler); prepareContext(tomcat.getHost(), servlet); return new TomcatWebServer(tomcat, getPort() >= 0); }
@Override protected void configure(ServerBuilder sb) throws Exception { // Prepare Tomcat instances. tomcatWithWebApp = new Tomcat(); tomcatWithWebApp.setPort(0); tomcatWithWebApp.setBaseDir("build" + File.separatorChar + "tomcat-" + UnmanagedTomcatServiceTest.class.getSimpleName() + "-1"); tomcatWithWebApp.addWebapp("", WebAppContainerTest.webAppRoot().getAbsolutePath()); TomcatUtil.engine(tomcatWithWebApp.getService(), "foo").setName("tomcatWithWebApp"); tomcatWithoutWebApp = new Tomcat(); tomcatWithoutWebApp.setPort(0); tomcatWithoutWebApp.setBaseDir("build" + File.separatorChar + "tomcat-" + UnmanagedTomcatServiceTest.class.getSimpleName() + "-2"); assertThat(TomcatUtil.engine(tomcatWithoutWebApp.getService(), "bar")).isNotNull(); // Start the Tomcats. tomcatWithWebApp.start(); tomcatWithoutWebApp.start(); // Bind them to the Server. sb.serviceUnder("/empty/", TomcatService.forConnector("someHost", new Connector())) .serviceUnder("/some-webapp-nohostname/", TomcatService.forConnector(tomcatWithWebApp.getConnector())) .serviceUnder("/no-webapp/", TomcatService.forTomcat(tomcatWithoutWebApp)) .serviceUnder("/some-webapp/", TomcatService.forTomcat(tomcatWithWebApp)); } };
void log(Tomcat tomcat) { Connector[] connectors = tomcat.getService().findConnectors(); for (Connector connector : connectors) { if (StringUtils.equalsIgnoreCase(connector.getScheme(), "http")) { logHttp(connector); } else { throw new IllegalArgumentException("Unsupported connector: " + connector); } } }
private void configureTomcat(Tomcat tomcat, Connector connector) { tomcat.setBaseDir(noSuchBaseDir.getAbsolutePath()); tomcat.setConnector(connector); tomcat.getService().addConnector(connector); }
void configure(Tomcat tomcat, Props props) { tomcat.setSilent(true); tomcat.getService().addLifecycleListener(new LifecycleLogger(Loggers.get(TomcatAccessLog.class))); configureLogbackAccess(tomcat, props); }
public boolean start() throws ContainerException { try { tomcat.start(); } catch (LifecycleException e) { throw new ContainerException(e); } for (Connector con: tomcat.getService().findConnectors()) { Debug.logInfo("Connector " + con.getProtocol() + " @ " + con.getPort() + " - " + (con.getSecure() ? "secure" : "not-secure") + " [" + con.getProtocolHandlerClassName() + "] started.", module); } Debug.logInfo("Started " + ServerInfo.getServerInfo(), module); return true; }