I started using Winstone from the very early days of Jenkins before it
was known by its current name. The idea of embedding a small servlet
container was a huge hit, and so Winstone really helped Jenkins become
But unfortunately, over the last few years, the upstream development of
Winstone has ceased and we ended up taking over the maintenance of it.
Clearly this is not the best use of our time.
At the same time, Winstone is the servlet container used for all of our
native pacakges, and people have customized their invocations, so it is
very important that the command line switches people use on "java -jar
jenkins.war" keeps working.
The way out has been pretty clear for a long time. I wanted to
essentially convert Winstone into a command line wrapper of Jetty. We
let Jetty do all the actual work, and just use Winstone's command line
option processor to remain option compatible with current Winstone.
In this way, we can leverage all the features in Jetty, such as SPDY
support or Servlet 3.0. Servlet 3.0 in particular should help us take
advantages of UI features.
(BTW The real deciding factor of choosing Winstone over Jetty in the
first place was because Sun had a competing project to Jetty, and I was
told it doesn't send the right message for me to use Jetty! I no longer
have that problem.)
I've suggested this to several people in IRC but all felt that it's bit
too much for them to drive the effort, even though they thought they'd
be happy to chip in once the effort goes underway.
So if you are one of them (and you know who I'm talking about!), now
it's time for you to chime in, as I finally took the time yesterday to
make this change .
At this point, the small number of tests that it has all passes, so it's
not completely broken. There's a TODO.txt in the repository that shows
what needs to be done. Mainly, I think we need to write some more tests
to verify that key features that people rely on works.
Other contributions, such as adding SPDY support, would be welcome, too.