Expose local port in EmbeddedServletContainer
This commit is contained in:
		
							parent
							
								
									d1dcb015b6
								
							
						
					
					
						commit
						67cc427d2b
					
				|  | @ -44,6 +44,10 @@ public interface EmbeddedServletContainer { | |||
| 		public void stop() throws EmbeddedServletContainerException { | ||||
| 			// Do nothing | ||||
| 		} | ||||
| 
 | ||||
| 		public int getPort() { | ||||
| 			return 0; | ||||
| 		} | ||||
| 	}; | ||||
| 
 | ||||
| 	/** | ||||
|  | @ -60,4 +64,9 @@ public interface EmbeddedServletContainer { | |||
| 	 */ | ||||
| 	void stop() throws EmbeddedServletContainerException; | ||||
| 
 | ||||
| 	/** | ||||
| 	 * @return the port this server is listening on (or zero if none) | ||||
| 	 */ | ||||
| 	int getPort(); | ||||
| 
 | ||||
| } | ||||
|  |  | |||
|  | @ -109,6 +109,16 @@ public class JettyEmbeddedServletContainer implements EmbeddedServletContainer { | |||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	@Override | ||||
| 	public int getPort() { | ||||
| 		Connector[] connectors = this.server.getConnectors(); | ||||
| 		for (Connector connector : connectors) { | ||||
| 			// Probably only one... | ||||
| 			return connector.getLocalPort(); | ||||
| 		} | ||||
| 		return 0; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Returns access to the underlying Jetty Server. | ||||
| 	 */ | ||||
|  |  | |||
|  | @ -126,11 +126,20 @@ public class TomcatEmbeddedServletContainer implements EmbeddedServletContainer | |||
| 			this.tomcat.destroy(); | ||||
| 		} | ||||
| 		catch (Exception ex) { | ||||
| 			throw new EmbeddedServletContainerException( | ||||
| 					"Unable to stop embedded Tomcat", ex); | ||||
| 			throw new EmbeddedServletContainerException("Unable to stop embedded Tomcat", | ||||
| 					ex); | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	@Override | ||||
| 	public int getPort() { | ||||
| 		Connector connector = this.tomcat.getConnector(); | ||||
| 		if (connector != null) { | ||||
| 			return connector.getLocalPort(); | ||||
| 		} | ||||
| 		return 0; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Returns access to the underlying Tomcat server. | ||||
| 	 */ | ||||
|  |  | |||
|  | @ -47,6 +47,7 @@ import org.springframework.util.StreamUtils; | |||
| 
 | ||||
| import static org.hamcrest.Matchers.equalTo; | ||||
| import static org.hamcrest.Matchers.notNullValue; | ||||
| import static org.junit.Assert.assertEquals; | ||||
| import static org.junit.Assert.assertThat; | ||||
| import static org.mockito.Matchers.anyObject; | ||||
| import static org.mockito.Mockito.inOrder; | ||||
|  | @ -172,6 +173,7 @@ public abstract class AbstractEmbeddedServletContainerFactoryTests { | |||
| 				.getEmbeddedServletContainer(exampleServletRegistration()); | ||||
| 		this.container.start(); | ||||
| 		assertThat(getResponse("http://localhost:8081/hello"), equalTo("Hello World")); | ||||
| 		assertEquals(8081, this.container.getPort()); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue