Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
c906524d
Commit
c906524d
authored
Oct 09, 2014
by
Phillip Webb
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1597 from liujiong1982/spring-boot-545
* spring-boot-545: Support Jetty HandlerCollection types
parents
a401454a
64447d3f
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
36 additions
and
7 deletions
+36
-7
JettyEmbeddedServletContainer.java
...context/embedded/jetty/JettyEmbeddedServletContainer.java
+13
-6
AbstractEmbeddedServletContainerFactoryTests.java
...mbedded/AbstractEmbeddedServletContainerFactoryTests.java
+1
-1
JettyEmbeddedServletContainerFactoryTests.java
...dded/jetty/JettyEmbeddedServletContainerFactoryTests.java
+22
-0
No files found.
spring-boot/src/main/java/org/springframework/boot/context/embedded/jetty/JettyEmbeddedServletContainer.java
View file @
c906524d
...
...
@@ -21,6 +21,7 @@ import org.apache.commons.logging.LogFactory;
import
org.eclipse.jetty.server.Connector
;
import
org.eclipse.jetty.server.Handler
;
import
org.eclipse.jetty.server.Server
;
import
org.eclipse.jetty.server.handler.HandlerCollection
;
import
org.eclipse.jetty.server.handler.HandlerWrapper
;
import
org.springframework.boot.context.embedded.EmbeddedServletContainer
;
import
org.springframework.boot.context.embedded.EmbeddedServletContainerException
;
...
...
@@ -34,6 +35,7 @@ import org.springframework.util.ReflectionUtils;
*
* @author Phillip Webb
* @author Dave Syer
* @author David Liu
* @see JettyEmbeddedServletContainerFactory
*/
public
class
JettyEmbeddedServletContainer
implements
EmbeddedServletContainer
{
...
...
@@ -115,12 +117,17 @@ public class JettyEmbeddedServletContainer implements EmbeddedServletContainer {
}
}
private
void
handleDeferredInitialize
(
Handler
handler
)
throws
Exception
{
if
(
handler
instanceof
JettyEmbeddedWebAppContext
)
{
((
JettyEmbeddedWebAppContext
)
handler
).
deferredInitialize
();
}
else
if
(
handler
instanceof
HandlerWrapper
)
{
handleDeferredInitialize
(((
HandlerWrapper
)
handler
).
getHandler
());
private
void
handleDeferredInitialize
(
Handler
...
handlers
)
throws
Exception
{
for
(
Handler
handler
:
handlers
)
{
if
(
handler
instanceof
JettyEmbeddedWebAppContext
)
{
((
JettyEmbeddedWebAppContext
)
handler
).
deferredInitialize
();
}
else
if
(
handler
instanceof
HandlerWrapper
)
{
handleDeferredInitialize
(((
HandlerWrapper
)
handler
).
getHandler
());
}
else
if
(
handler
instanceof
HandlerCollection
)
{
handleDeferredInitialize
(((
HandlerCollection
)
handler
).
getHandlers
());
}
}
}
...
...
spring-boot/src/test/java/org/springframework/boot/context/embedded/AbstractEmbeddedServletContainerFactoryTests.java
View file @
c906524d
...
...
@@ -580,7 +580,7 @@ public abstract class AbstractEmbeddedServletContainerFactoryTests {
protected
abstract
AbstractEmbeddedServletContainerFactory
getFactory
();
pr
ivate
ServletContextInitializer
exampleServletRegistration
()
{
pr
otected
ServletContextInitializer
exampleServletRegistration
()
{
return
new
ServletRegistrationBean
(
new
ExampleServlet
(),
"/hello"
);
}
...
...
spring-boot/src/test/java/org/springframework/boot/context/embedded/jetty/JettyEmbeddedServletContainerFactoryTests.java
View file @
c906524d
...
...
@@ -21,6 +21,8 @@ import java.util.concurrent.TimeUnit;
import
org.eclipse.jetty.server.Handler
;
import
org.eclipse.jetty.server.Server
;
import
org.eclipse.jetty.server.handler.HandlerCollection
;
import
org.eclipse.jetty.server.handler.HandlerWrapper
;
import
org.eclipse.jetty.server.ssl.SslConnector
;
import
org.eclipse.jetty.webapp.Configuration
;
import
org.eclipse.jetty.webapp.WebAppContext
;
...
...
@@ -129,4 +131,24 @@ public class JettyEmbeddedServletContainerFactoryTests extends
assertThat
(
actual
,
equalTo
(
expected
));
}
@Test
public
void
wrappedHandlers
()
throws
Exception
{
JettyEmbeddedServletContainerFactory
factory
=
getFactory
();
factory
.
setServerCustomizers
(
Arrays
.
asList
(
new
JettyServerCustomizer
()
{
@Override
public
void
customize
(
Server
server
)
{
Handler
handler
=
server
.
getHandler
();
HandlerWrapper
wrapper
=
new
HandlerWrapper
();
wrapper
.
setHandler
(
handler
);
HandlerCollection
collection
=
new
HandlerCollection
();
collection
.
addHandler
(
wrapper
);
server
.
setHandler
(
collection
);
}
}));
this
.
container
=
factory
.
getEmbeddedServletContainer
(
exampleServletRegistration
());
this
.
container
.
start
();
assertThat
(
getResponse
(
getLocalUrl
(
"/hello"
)),
equalTo
(
"Hello World"
));
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment