Python Java JavaScript Other
Pull request Compare This branch is 2 commits ahead, 771 commits behind branaway:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



This fork came from the HEAD of master in the original Play framework, at about a post 1.2.4 version.

It contains
1. a few patches that make using Play in dev mode faster.
2. special code to work with Japid for better japid views’ error reporting in DEV mode. Most of japid grammar errors will be pointed back to the original view files.


2012.3.9, version, tested with japid
1. disabled PropertiesEnhancer for Japid Views.
2012.3.9, version 1.2.5, tested with japid
1. added Play.runingInTestNode() to make the Cobertura module happy. Bad naming.
2. fixed UniqueCheck in the string concatenation for updates.
3. added enum filter to the LVEnhancer, not sure 100% though.
4. improvement: mapped Java code compilation error to the original view line, for better problem error pinpointing.
5. added optimization in ApplicationClassLoader#detectChanges to fine tune dirtySig to avoid whole app reloading when a japidview file is changed, a performance improvement at dev time.

For More changes I have made, please see the bottom of this page.

Welcome to Play framework

Play framework makes it easier to build Web applications with Java. It is a clean alternative to bloated Enterprise Java stacks. It focuses on developer productivity and targets RESTful architectures. Play is a perfect companion to agile software development.

Learn more on the website.

Getting started

1. Install the latest version of Play framework and unzip it anywhere you want:

unzip -d /opt/play-1.2

2. Add the play script to your PATH:

export PATH=$PATH:/opt/play-1.2

3. Create a new Play application:

play new /opt/myFirstApp

4. Run the created application:

play run /opt/myFirstApp

5. Go to localhost:9000/ and you’ll see the welcome page.

6. Start developing your new application:

Get the source

Fork the project source code on Github:

git clone git://

The project history is pretty big. You can pull only a shallow clone by specifying the number of commits you want with —depth:

 git clone git:// --depth 10

Reporting bugs

Please use the github issue to report bugs


Play framework is distributed under Apache 2 license.

Bing Ran local patches:

I have made a few patched that fix a few bugs and inconvenience

  1. simplified the error message in case of ActionNotFoundException.
  2. MemecachedImpl: clean keys with space and delegate to super class loader for primitive array types
  3. UrlEncodeParser: changed to use “_body” from “body” to avoid conflicts with user’s body parameter
  4. NoRouteFoundException: added the action name in the error message.
  5. Invoker: synch the creation of the suspended invocations.
  6. Play: added a delay in detecting changes to avoid run the detection for very requests in a burst.
  7. PlayHandler: added keep-alive header to the HTTP 1.0 request.
  8. Wrapped the HotswapAgent in PlayAgent.jar to be used as the JVM agent instead of the whole play.jar. This way start script for applications can be simplified to the point that I can use regular Eclipse run/debug instead of using the remote debugging mode.
  9. added option to invoke ActionInvocation without going through the intermediate executor. The option to add to application.conf: “” with value of “true”/“false”;

To synch with the original play repo, I have added a remote called upstream that is mapped to git://, which is the play 1.x repo.


$ git fetch upstream
$ git merge upstream/master

After a successful merge,

$ git push origin master