2. About me
Senior Developer at Autoquake.com
Technologies we use: Java,JEE,Groovy,Grails,GWT
My current interests are: Scala, Lift, Play, Clojure
3. Why another Web framework?
I'm tired to learn all of them
4. What is Play!
● Started 2008 by Guillaume Bort, play dev team
● A new unconventional for Java world approach
● There is no traditional JEE stack
● It's a platform not just a glue framework
● Usability first
● Current version is 126.96.36.199
5. Main features
● RESTfull (Uses HTTP features not just as a
● Refresh and see the changes
● In-build compiler and classloader
● Efficient error reporting system
● Build in test framework
6. MVC in Play!
● Model (not anemic)
● Convention based REST routing
● View (efficient template system)
7. What is Stateless exactly?
● Share nothing architecture
● Easy to scale and support
● Simplifies the code
but sometimes we need a state?
Cache (EhCache, Memcached for scaling
● Can't execute tests outside of the framework
We have 3 types of tests:
● Selenium simplified
● Code coverage via Cobertura plugin
● YAML and Fixtures
● Scheduled jobs
● Suspendable requests
Future<InputStream> task = new
10. Modules system
Some of the available modules:
● Guice, Spring
● Stax, Playapps.net
● Siena, Ebean DB, MongoDB
● Installing is simple “play install scala”
● Easy to create a module “play new-module”
11. Small but nice things in Play!
● Framework ID's (play id, prod321.username=test)
● Localisation and I18N
● User and SEO friendly URL's
● Logging support (Logger.info("A log message"))
● Security support
● IDE support
12. Where is Scala stuff? Enough Java
Now onto Play! Scala
(created by Peter Hausel)
“I like Lift ;-) Play is my second choice for Scala-friendly web frameworks”
David Pollak creator of Lift on SOF
13. Why Scala?
● Alternative implementation but same platform
● Java enhancers (ex get,set)
● Improve expressiveness
● Challenges (API, different language features,
● Another language in the future?
14. What Scala brings to Play!
● Scala 2.8 support
● Scalate templates
● Scala console (tab completion)
● AKKA integration
15. Demo time
Ok let's build a simple app.
16. Any cons at all?
● Documentation is not up to date and scattered
● Scala module is still in dev (but API changes are less
● Couldn't get cobertura working for 1.1 with Scala
● Sometimes changes in Scala classes are not picked
● Start-up time grows with number of classes (play
recompiles dependencies as well)
● Scala module (Had to compile from source code)
17. Preparing for Production
● Can be compiled and packaged
● Can be deployed to all major containers
● Some security issue were found recently so it's
advised to keep it behind a proxy
● Production behaviour is different
● Use server ID
● Looking forward to 1.1 release
● Scala module looks promising and easy to use
● Better IDE support is required
● Other Scala modules need more
● Better attention is required to keep Java and
Scala modules up to date
● Start using Play! Java now