playframework/playframework — pull request #3165 by richdougherty (2014-07-09 23:37:06+00:00)
Title: Split Netty server code into separate subproject

This change splits out Play's generic server code and Netty server code into new projects. Later, I'm going to add a new akka-http server project, so it's nice to get the Netty code out of the core Play module.

Before this change, the "play" project included server code and had a dependency on Netty.

netty <- play

Now that I've split out the generic and Netty server code, the play project no longer has a dependency on Netty. I introduced several new projects:

netty <-.
play-netty-utils <- play <- play-server <- play-netty-server

* play-netty-utils. Contains cookie encoding and decoding logic that I pulled out of Netty's 3.9 branch. The files have been added under the play.core.netty.utils package. (Netty has the same license as Play and I preserved the source file headers.)

* play-server. Generic server code. There's not much here yet.

* play-netty-server. Netty server code. All the bits we need to launch a Netty server.

Existing Play applications will now depend on play-netty-server rather than on play. I've updated the Play plugin to automatically add this new dependency into projects.

I've tried to minimise the changes to Play's code. The main thing I needed to do was add a server-agnostic representation for WebSocket frames and formatting, but this wasn't an API change for users. The other thing I did was move some play.core classes into different packages.