├── framework ├── src │ ├── play │ │ └── src │ │ │ ├── test │ │ │ ├── conf │ │ │ │ └── application.conf │ │ │ ├── resources │ │ │ │ ├── file withspace.css │ │ │ │ └── messages │ │ │ └── scala │ │ │ │ └── play │ │ │ │ └── data │ │ │ │ ├── MyUser.java │ │ │ │ └── AnotherUser.java │ │ │ └── main │ │ │ ├── java │ │ │ └── play │ │ │ │ ├── http │ │ │ │ └── package-info.java │ │ │ │ ├── inject │ │ │ │ ├── package-info.java │ │ │ │ └── Bindings.java │ │ │ │ ├── libs │ │ │ │ ├── streams │ │ │ │ │ └── package-info.java │ │ │ │ └── concurrent │ │ │ │ │ └── package-info.java │ │ │ │ ├── i18n │ │ │ │ └── package-info.java │ │ │ │ ├── Mode.java │ │ │ │ ├── mvc │ │ │ │ ├── package-info.java │ │ │ │ ├── With.java │ │ │ │ └── EssentialFilter.java │ │ │ │ ├── package-info.java │ │ │ │ └── server │ │ │ │ ├── SSLEngineProvider.java │ │ │ │ └── ApplicationProvider.java │ │ │ └── scala │ │ │ ├── views │ │ │ ├── defaultpages │ │ │ │ └── package.scala │ │ │ └── helper │ │ │ │ ├── form.scala.html │ │ │ │ ├── inputFile.scala.html │ │ │ │ ├── inputPassword.scala.html │ │ │ │ └── textarea.scala.html │ │ │ ├── play │ │ │ ├── api │ │ │ │ ├── libs │ │ │ │ │ └── package.scala │ │ │ │ ├── http │ │ │ │ │ └── Port.scala │ │ │ │ ├── i18n │ │ │ │ │ └── package.scala │ │ │ │ ├── mvc │ │ │ │ │ └── package.scala │ │ │ │ ├── Exceptions.scala │ │ │ │ └── data │ │ │ │ │ └── package.scala │ │ │ ├── utils │ │ │ │ └── Conversions.scala │ │ │ └── core │ │ │ │ └── system │ │ │ │ └── RequestIdProvider.scala │ │ │ └── models │ │ │ └── DummyPlaceHolder.scala │ ├── play-integration-test │ │ └── src │ │ │ └── test │ │ │ └── resources │ │ │ ├── testassets │ │ │ ├── empty.txt │ │ │ ├── bar.txt │ │ │ ├── foo.txt │ │ │ ├── subdir │ │ │ │ └── baz.txt │ │ │ ├── versioned │ │ │ │ └── sub │ │ │ │ │ ├── foo.txt │ │ │ │ │ ├── foo.txt.md5 │ │ │ │ │ └── 12345678901234567890123456789012-foo.txt │ │ │ ├── foo bar.txt │ │ │ └── foo.txt.gz │ │ │ ├── messages │ │ │ └── application.conf │ ├── sbt-plugin │ │ └── src │ │ │ └── sbt-test │ │ │ ├── play-sbt-plugin │ │ │ ├── multiproject │ │ │ │ ├── public │ │ │ │ │ └── empty.txt │ │ │ │ ├── nonplaymodule │ │ │ │ │ └── src │ │ │ │ │ │ └── main │ │ │ │ │ │ ├── resources │ │ │ │ │ │ └── empty.txt │ │ │ │ │ │ └── scala │ │ │ │ │ │ └── NonPlayModule.scala │ │ │ │ ├── app │ │ │ │ │ ├── Root.scala │ │ │ │ │ └── assets │ │ │ │ │ │ └── main.less │ │ │ │ ├── project │ │ │ │ │ ├── build.properties │ │ │ │ │ └── plugins.sbt │ │ │ │ ├── playmodule │ │ │ │ │ └── app │ │ │ │ │ │ ├── PlayModule.scala │ │ │ │ │ │ └── assets │ │ │ │ │ │ └── module.less │ │ │ │ ├── transitive │ │ │ │ │ └── app │ │ │ │ │ │ └── Transitive.scala │ │ │ │ └── test │ │ │ ├── dev-mode │ │ │ │ ├── changes │ │ │ │ │ ├── some.txt.1 │ │ │ │ │ ├── some.txt.0 │ │ │ │ │ ├── application.conf.1 │ │ │ │ │ ├── main.less.1 │ │ │ │ │ ├── new.css │ │ │ │ │ ├── new.css.1 │ │ │ │ │ ├── some.css.0 │ │ │ │ │ ├── some.css.1 │ │ │ │ │ ├── Application.scala.2 │ │ │ │ │ ├── Application.scala.1 │ │ │ │ │ └── Application.scala.3 │ │ │ │ ├── conf │ │ │ │ │ ├── application.conf │ │ │ │ │ └── routes │ │ │ │ ├── public │ │ │ │ │ ├── a │ │ │ │ │ │ └── some.txt │ │ │ │ │ ├── b │ │ │ │ │ │ └── some.txt │ │ │ │ │ └── css │ │ │ │ │ │ └── some.css │ │ │ │ ├── project │ │ │ │ │ ├── build.properties │ │ │ │ │ └── plugins.sbt │ │ │ │ └── app │ │ │ │ │ ├── assets │ │ │ │ │ └── main.less │ │ │ │ │ ├── controllers │ │ │ │ │ └── Application.scala │ │ │ │ │ └── Module.scala │ │ │ ├── distribution │ │ │ │ ├── dist │ │ │ │ │ ├── SomeFile.txt │ │ │ │ │ └── SomeFolder │ │ │ │ │ │ └── SomeOtherFile.txt │ │ │ │ ├── app │ │ │ │ │ ├── views │ │ │ │ │ │ ├── .backup-file.scala.html │ │ │ │ │ │ ├── index.scala.html │ │ │ │ │ │ └── main.scala.html │ │ │ │ │ └── assets │ │ │ │ │ │ └── main.less │ │ │ │ ├── public │ │ │ │ │ ├── stylesheets │ │ │ │ │ │ └── main.css │ │ │ │ │ └── images │ │ │ │ │ │ └── favicon.png │ │ │ │ ├── project │ │ │ │ │ ├── build.properties │ │ │ │ │ └── plugins.sbt │ │ │ │ ├── conf │ │ │ │ │ ├── alternate.conf │ │ │ │ │ ├── application.conf │ │ │ │ │ └── routes │ │ │ │ └── README │ │ │ ├── multiproject-assets │ │ │ │ ├── public │ │ │ │ │ └── empty.txt │ │ │ │ ├── module │ │ │ │ │ ├── public │ │ │ │ │ │ └── empty.txt │ │ │ │ │ ├── app │ │ │ │ │ │ └── assets │ │ │ │ │ │ │ └── module.less │ │ │ │ │ └── build.sbt │ │ │ │ ├── project │ │ │ │ │ ├── build.properties │ │ │ │ │ └── plugins.sbt │ │ │ │ └── app │ │ │ │ │ └── assets │ │ │ │ │ └── main.less │ │ │ ├── secret │ │ │ │ ├── test │ │ │ │ ├── project │ │ │ │ │ ├── build.properties │ │ │ │ │ └── plugins.sbt │ │ │ │ ├── README │ │ │ │ └── conf │ │ │ │ │ └── application.conf │ │ │ ├── nested-secret │ │ │ │ ├── test │ │ │ │ ├── project │ │ │ │ │ ├── build.properties │ │ │ │ │ └── plugins.sbt │ │ │ │ ├── README │ │ │ │ └── conf │ │ │ │ │ └── application.conf │ │ │ ├── distribution-without-documentation │ │ │ │ ├── conf │ │ │ │ │ ├── routes │ │ │ │ │ └── application.conf │ │ │ │ ├── project │ │ │ │ │ ├── build.properties │ │ │ │ │ └── plugins.sbt │ │ │ │ ├── test │ │ │ │ ├── README │ │ │ │ └── app │ │ │ │ │ └── controllers │ │ │ │ │ └── Application.scala │ │ │ └── play-position-mapper │ │ │ │ ├── app │ │ │ │ └── views │ │ │ │ │ └── index.scala.html │ │ │ │ ├── conf │ │ │ │ └── routes │ │ │ │ ├── project │ │ │ │ ├── build.properties │ │ │ │ └── plugins.sbt │ │ │ │ └── test │ │ │ └── routes-compiler-plugin │ │ │ ├── routes-compilation │ │ │ ├── public │ │ │ │ └── css │ │ │ │ │ ├── main.css │ │ │ │ │ ├── minmain.css │ │ │ │ │ ├── abcd1234-main.css │ │ │ │ │ ├── minmain-min.css │ │ │ │ │ ├── main.css.md5 │ │ │ │ │ ├── nonfingerprinted.css │ │ │ │ │ ├── abcd1234-minmain-min.css │ │ │ │ │ ├── minmain-min.css.md5 │ │ │ │ │ ├── nonfingerprinted-minmain-min.css │ │ │ │ │ └── nonfingerprinted-minmain.css │ │ │ ├── test │ │ │ ├── project │ │ │ │ ├── build.properties │ │ │ │ └── plugins.sbt │ │ │ ├── conf │ │ │ │ └── module.routes │ │ │ └── app │ │ │ │ └── controllers │ │ │ │ ├── πø$7ß.scala │ │ │ │ ├── InstanceController.scala │ │ │ │ └── module │ │ │ │ └── ModuleController.scala │ │ │ ├── injected-routes-compilation │ │ │ ├── public │ │ │ │ └── css │ │ │ │ │ ├── main.css │ │ │ │ │ ├── minmain.css │ │ │ │ │ ├── abcd1234-main.css │ │ │ │ │ ├── minmain-min.css │ │ │ │ │ ├── main.css.md5 │ │ │ │ │ ├── nonfingerprinted.css │ │ │ │ │ ├── abcd1234-minmain-min.css │ │ │ │ │ ├── minmain-min.css.md5 │ │ │ │ │ ├── nonfingerprinted-minmain.css │ │ │ │ │ └── nonfingerprinted-minmain-min.css │ │ │ ├── test │ │ │ ├── project │ │ │ │ ├── build.properties │ │ │ │ └── plugins.sbt │ │ │ ├── conf │ │ │ │ └── module.routes │ │ │ └── app │ │ │ │ └── controllers │ │ │ │ ├── πø$7ß.scala │ │ │ │ ├── module │ │ │ │ └── ModuleController.scala │ │ │ │ └── InstanceController.scala │ │ │ ├── source-mapping │ │ │ ├── test │ │ │ ├── project │ │ │ │ ├── build.properties │ │ │ │ └── plugins.sbt │ │ │ ├── Application.scala │ │ │ └── routes │ │ │ ├── aggregate-reverse-routes │ │ │ ├── a │ │ │ │ ├── conf │ │ │ │ │ └── a.routes │ │ │ │ └── app │ │ │ │ │ └── controllers │ │ │ │ │ └── a │ │ │ │ │ └── A.scala │ │ │ ├── b │ │ │ │ ├── conf │ │ │ │ │ └── b.routes │ │ │ │ └── app │ │ │ │ │ └── controllers │ │ │ │ │ └── b │ │ │ │ │ └── B.scala │ │ │ ├── c │ │ │ │ ├── conf │ │ │ │ │ └── c.routes │ │ │ │ └── app │ │ │ │ │ └── controllers │ │ │ │ │ └── c │ │ │ │ │ └── C.scala │ │ │ ├── conf │ │ │ │ └── routes │ │ │ ├── project │ │ │ │ ├── build.properties │ │ │ │ └── plugins.sbt │ │ │ └── nonplay │ │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── scala │ │ │ │ └── nonplay.NonPlay.scala │ │ │ └── incremental-compilation │ │ │ ├── b.routes.1 │ │ │ ├── a.routes │ │ │ ├── b.routes │ │ │ ├── a.routes.1 │ │ │ └── project │ │ │ ├── build.properties │ │ │ └── plugins.sbt │ ├── play-jdbc-evolutions │ │ └── src │ │ │ └── test │ │ │ └── resources │ │ │ ├── evolutions │ │ │ └── test │ │ │ │ ├── 4.sql │ │ │ │ ├── 3.sql │ │ │ │ ├── 1.sql │ │ │ │ └── 2.sql │ │ │ └── evolutionstest │ │ │ └── evolutions │ │ │ └── default │ │ │ └── 1.sql │ ├── play-akka-http-server │ │ └── src │ │ │ └── sbt-test │ │ │ └── akka-http │ │ │ ├── system-property │ │ │ ├── conf │ │ │ │ ├── application.conf │ │ │ │ └── routes │ │ │ ├── project │ │ │ │ ├── build.properties │ │ │ │ └── plugins.sbt │ │ │ └── test │ │ │ └── play-akka-http-plugin │ │ │ ├── conf │ │ │ ├── application.conf │ │ │ └── routes │ │ │ ├── project │ │ │ ├── build.properties │ │ │ └── plugins.sbt │ │ │ └── test │ ├── play-java-jdbc │ │ └── src │ │ │ └── main │ │ │ ├── resources │ │ │ └── reference.conf │ │ │ └── java │ │ │ └── play │ │ │ └── db │ │ │ └── package-info.java │ ├── play-java │ │ └── src │ │ │ ├── test │ │ │ ├── resources │ │ │ │ ├── messages.en-US │ │ │ │ ├── messages.fr │ │ │ │ └── messages │ │ │ └── java │ │ │ │ └── play │ │ │ │ └── libs │ │ │ │ └── testmodel │ │ │ │ ├── AC1.java │ │ │ │ └── C1.java │ │ │ └── main │ │ │ ├── resources │ │ │ ├── ebean.properties │ │ │ └── reference.conf │ │ │ └── java │ │ │ └── play │ │ │ └── libs │ │ │ └── package-info.java │ ├── play-guice │ │ └── src │ │ │ ├── main │ │ │ ├── resources │ │ │ │ └── reference.conf │ │ │ └── java │ │ │ │ └── play │ │ │ │ └── libs │ │ │ │ └── akka │ │ │ │ └── package-info.java │ │ │ └── test │ │ │ ├── resources │ │ │ └── messages │ │ │ └── scala │ │ │ └── play │ │ │ └── core │ │ │ └── test │ │ │ └── Fakes.scala │ ├── routes-compiler │ │ └── src │ │ │ └── test │ │ │ └── resources │ │ │ ├── complexNames.routes │ │ │ ├── duplicateHandlers.routes │ │ │ ├── generating.routes │ │ │ └── complexTypes.routes │ ├── play-java-jpa │ │ └── src │ │ │ ├── main │ │ │ ├── resources │ │ │ │ └── reference.conf │ │ │ └── java │ │ │ │ └── play │ │ │ │ └── db │ │ │ │ └── jpa │ │ │ │ ├── package-info.java │ │ │ │ └── Transactional.java │ │ │ └── test │ │ │ └── resources │ │ │ └── evolutions │ │ │ └── default │ │ │ ├── 2.sql │ │ │ └── 1.sql │ ├── play-java-ws │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── play │ │ │ │ │ └── libs │ │ │ │ │ ├── openid │ │ │ │ │ └── package-info.java │ │ │ │ │ └── ws │ │ │ │ │ ├── WSRequestFilter.java │ │ │ │ │ ├── WSRequestExecutor.java │ │ │ │ │ ├── WSSignatureCalculator.java │ │ │ │ │ ├── WSAPI.java │ │ │ │ │ └── WSAuthScheme.java │ │ │ └── resources │ │ │ │ └── reference.conf │ │ │ └── test │ │ │ └── resources │ │ │ └── play │ │ │ └── libs │ │ │ └── ws │ │ │ └── play_full_color.png │ ├── play-jdbc │ │ └── src │ │ │ └── main │ │ │ ├── resources │ │ │ └── jndi.properties │ │ │ └── scala │ │ │ └── play │ │ │ └── api │ │ │ └── db │ │ │ └── package.scala │ ├── play-server │ │ └── src │ │ │ ├── test │ │ │ └── resources │ │ │ │ └── application.conf │ │ │ └── main │ │ │ └── scala │ │ │ └── play │ │ │ └── core │ │ │ └── server │ │ │ ├── common │ │ │ └── ConnectionInfo.scala │ │ │ ├── ServerListenException.scala │ │ │ └── ServerStartException.scala │ ├── play-filters-helpers │ │ └── src │ │ │ └── test │ │ │ └── resources │ │ │ ├── helloWorld.txt.gz │ │ │ ├── application.conf │ │ │ └── application-logger.xml │ ├── play-java-forms │ │ └── src │ │ │ ├── test │ │ │ └── java │ │ │ │ └── play │ │ │ │ └── data │ │ │ │ ├── LoginCheck.java │ │ │ │ ├── PasswordCheck.java │ │ │ │ ├── Red.java │ │ │ │ ├── MyUser.java │ │ │ │ ├── UserEmail.java │ │ │ │ ├── Money.java │ │ │ │ └── BlueValidator.java │ │ │ └── main │ │ │ ├── resources │ │ │ └── reference.conf │ │ │ └── java │ │ │ └── play │ │ │ └── data │ │ │ ├── package-info.java │ │ │ ├── validation │ │ │ └── package-info.java │ │ │ ├── format │ │ │ └── package-info.java │ │ │ └── FormFactoryModule.java │ ├── play-test │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── play │ │ │ │ │ └── test │ │ │ │ │ └── package-info.java │ │ │ └── scala │ │ │ │ └── play │ │ │ │ └── api │ │ │ │ └── test │ │ │ │ └── package.scala │ │ │ └── test │ │ │ └── java │ │ │ └── play │ │ │ └── test │ │ │ └── WithApplicationTest.java │ ├── play-cache │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── play │ │ │ │ └── cache │ │ │ │ ├── package-info.java │ │ │ │ └── NamedCache.java │ │ │ └── scala │ │ │ └── play │ │ │ └── api │ │ │ └── cache │ │ │ └── package.scala │ ├── play-logback │ │ └── src │ │ │ └── main │ │ │ └── resources │ │ │ └── logger-configurator.properties │ ├── play-ws │ │ └── src │ │ │ ├── test │ │ │ ├── scala │ │ │ │ └── play │ │ │ │ │ └── api │ │ │ │ │ └── libs │ │ │ │ │ └── openid │ │ │ │ │ └── RichUrl.scala │ │ │ └── resources │ │ │ │ └── play │ │ │ │ └── api │ │ │ │ └── libs │ │ │ │ └── openid │ │ │ │ └── discovery │ │ │ │ ├── xrds │ │ │ │ ├── invalid-op-identifier.xml │ │ │ │ ├── simple-openid-1-op.xml │ │ │ │ ├── simple-openid-1.1-op.xml │ │ │ │ ├── simple-op.xml │ │ │ │ └── simple-op-non-unique.xml │ │ │ │ └── html │ │ │ │ ├── openIDProvider.html │ │ │ │ └── openIDProvider-OpenID-1.1.html │ │ │ └── main │ │ │ └── scala │ │ │ └── play │ │ │ └── api │ │ │ └── libs │ │ │ └── oauth │ │ │ └── package.scala │ ├── run-support │ │ └── src │ │ │ └── main │ │ │ ├── scala │ │ │ └── play │ │ │ │ └── runsupport │ │ │ │ ├── ServerStartException.scala │ │ │ │ ├── LoggerProxy.scala │ │ │ │ ├── NamedURLClassLoader.scala │ │ │ │ └── DelegatedResourcesClassLoader.scala │ │ │ └── java │ │ │ └── play │ │ │ └── runsupport │ │ │ └── classloader │ │ │ └── ApplicationClassLoaderProvider.java │ ├── play-jdbc-api │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── play │ │ │ └── db │ │ │ └── NamedDatabase.java │ ├── play-json │ │ └── src │ │ │ └── main │ │ │ └── scala │ │ │ └── play │ │ │ └── api │ │ │ └── libs │ │ │ └── json │ │ │ └── Util.scala │ ├── play-microbenchmark │ │ └── src │ │ │ └── main │ │ │ └── scala │ │ │ └── play │ │ │ └── api │ │ │ └── mvc │ │ │ └── MvcHelpers.scala │ ├── play-datacommons │ │ └── src │ │ │ └── main │ │ │ └── scala │ │ │ └── play │ │ │ └── api │ │ │ └── data │ │ │ └── validation │ │ │ └── package.scala │ └── build-link │ │ └── src │ │ └── main │ │ └── java │ │ └── play │ │ └── core │ │ └── server │ │ └── ServerWithStop.java ├── version.sbt ├── project │ ├── build.properties │ └── project │ │ └── buildinfo.sbt └── bin │ ├── testDocumentation │ ├── testSbtPlugins │ └── checkCodeStyle ├── documentation ├── manual │ ├── releases │ │ ├── release26 │ │ │ ├── Highlights26.md │ │ │ ├── index.toc │ │ │ └── migration26 │ │ │ │ └── index.toc │ │ ├── release21 │ │ │ └── index.toc │ │ ├── release22 │ │ │ └── index.toc │ │ ├── release23 │ │ │ └── index.toc │ │ ├── release25 │ │ │ ├── index.toc │ │ │ └── migration25 │ │ │ │ └── index.toc │ │ ├── release24 │ │ │ ├── index.toc │ │ │ └── migration24 │ │ │ │ ├── index.toc │ │ │ │ └── code24 │ │ │ │ └── MyModule.java │ │ ├── index.toc │ │ └── Releases.md │ ├── working │ │ ├── javaGuide │ │ │ ├── main │ │ │ │ ├── logging │ │ │ │ │ └── index.toc │ │ │ │ ├── akka │ │ │ │ │ ├── index.toc │ │ │ │ │ └── code │ │ │ │ │ │ └── javaguide │ │ │ │ │ │ └── akka │ │ │ │ │ │ ├── akka.conf │ │ │ │ │ │ ├── ConfiguredActorProtocol.java │ │ │ │ │ │ ├── ParentActorProtocol.java │ │ │ │ │ │ ├── ConfiguredChildActorProtocol.java │ │ │ │ │ │ ├── HelloActorProtocol.java │ │ │ │ │ │ └── modules │ │ │ │ │ │ └── MyModule.java │ │ │ │ ├── cache │ │ │ │ │ ├── index.toc │ │ │ │ │ └── code │ │ │ │ │ │ ├── cache.sbt │ │ │ │ │ │ └── javaguide │ │ │ │ │ │ └── cache │ │ │ │ │ │ ├── qualified │ │ │ │ │ │ └── Application.java │ │ │ │ │ │ └── inject │ │ │ │ │ │ └── Application.java │ │ │ │ ├── i18n │ │ │ │ │ ├── code │ │ │ │ │ │ └── javaguide │ │ │ │ │ │ │ └── i18n │ │ │ │ │ │ │ ├── messages.fr │ │ │ │ │ │ │ ├── messages.en-US │ │ │ │ │ │ │ ├── helloscalatemplate.scala.html │ │ │ │ │ │ │ ├── explicitjavatemplate.scala.html │ │ │ │ │ │ │ ├── hellotemplate.scala.html │ │ │ │ │ │ │ └── messages │ │ │ │ │ └── index.toc │ │ │ │ ├── json │ │ │ │ │ ├── index.toc │ │ │ │ │ └── code │ │ │ │ │ │ └── javaguide │ │ │ │ │ │ └── json │ │ │ │ │ │ └── JavaJsonCustomObjectMapperModule.java │ │ │ │ ├── xml │ │ │ │ │ └── index.toc │ │ │ │ ├── upload │ │ │ │ │ └── index.toc │ │ │ │ ├── forms │ │ │ │ │ ├── code │ │ │ │ │ │ ├── javaguide.forms.routes │ │ │ │ │ │ └── javaguide │ │ │ │ │ │ │ └── forms │ │ │ │ │ │ │ ├── withFieldConstructor.scala.html │ │ │ │ │ │ │ ├── html │ │ │ │ │ │ │ └── routes │ │ │ │ │ │ │ │ └── package.scala │ │ │ │ │ │ │ ├── fullform.scala.html │ │ │ │ │ │ │ ├── controllers │ │ │ │ │ │ │ └── Application.scala │ │ │ │ │ │ │ ├── csrf.scala.html │ │ │ │ │ │ │ ├── myFieldConstructorTemplate.scala.html │ │ │ │ │ │ │ ├── view.scala.html │ │ │ │ │ │ │ ├── csrf │ │ │ │ │ │ │ └── Filters.java │ │ │ │ │ │ │ └── FormattersModule.java │ │ │ │ │ └── index.toc │ │ │ │ ├── tests │ │ │ │ │ ├── code │ │ │ │ │ │ ├── javaguide.tests.guice.routes │ │ │ │ │ │ ├── javaguide.tests.routes │ │ │ │ │ │ ├── javaguide │ │ │ │ │ │ │ └── tests │ │ │ │ │ │ │ │ ├── index.scala.html │ │ │ │ │ │ │ │ ├── controllers │ │ │ │ │ │ │ │ └── HomeController.java │ │ │ │ │ │ │ │ ├── HamcrestTest.java │ │ │ │ │ │ │ │ └── SimpleTest.java │ │ │ │ │ │ └── tests │ │ │ │ │ │ │ └── guice │ │ │ │ │ │ │ ├── Component.java │ │ │ │ │ │ │ ├── MockComponent.java │ │ │ │ │ │ │ ├── DefaultComponent.java │ │ │ │ │ │ │ └── ComponentModule.java │ │ │ │ │ └── index.toc │ │ │ │ ├── dependencyinjection │ │ │ │ │ ├── index.toc │ │ │ │ │ └── code │ │ │ │ │ │ ├── static.sbt │ │ │ │ │ │ ├── javaguide.di.routes │ │ │ │ │ │ ├── injected.sbt │ │ │ │ │ │ └── javaguide │ │ │ │ │ │ └── di │ │ │ │ │ │ ├── GermanHello.java │ │ │ │ │ │ ├── controllers │ │ │ │ │ │ └── Application.java │ │ │ │ │ │ ├── field │ │ │ │ │ │ └── MyComponent.java │ │ │ │ │ │ ├── EnglishHello.java │ │ │ │ │ │ ├── Hello.java │ │ │ │ │ │ ├── MessageQueue.java │ │ │ │ │ │ ├── CurrentSharePrice.java │ │ │ │ │ │ └── constructor │ │ │ │ ├── ws │ │ │ │ │ ├── code │ │ │ │ │ │ ├── javaguide │ │ │ │ │ │ │ └── ws │ │ │ │ │ │ │ │ ├── login.scala.html │ │ │ │ │ │ │ │ └── Application.java │ │ │ │ │ │ ├── javaws.sbt │ │ │ │ │ │ └── javaguide.ws.routes │ │ │ │ │ └── index.toc │ │ │ │ ├── sql │ │ │ │ │ ├── index.toc │ │ │ │ │ ├── images │ │ │ │ │ │ └── dbError.png │ │ │ │ │ └── code │ │ │ │ │ │ ├── jpa.sbt │ │ │ │ │ │ ├── JavaApplicationDatabase.java │ │ │ │ │ │ └── JavaNamedDatabase.java │ │ │ │ ├── async │ │ │ │ │ ├── code │ │ │ │ │ │ └── javaguide.async.routes │ │ │ │ │ └── index.toc │ │ │ │ ├── http │ │ │ │ │ ├── images │ │ │ │ │ │ └── routesError.png │ │ │ │ │ ├── code │ │ │ │ │ │ ├── javaguide.http.routing.reverse.routes │ │ │ │ │ │ ├── javaguide.http.routing.defaultvalue.routes │ │ │ │ │ │ ├── javaguide │ │ │ │ │ │ │ └── http │ │ │ │ │ │ │ │ ├── views │ │ │ │ │ │ │ │ └── index.scala.html │ │ │ │ │ │ │ │ ├── routing │ │ │ │ │ │ │ │ ├── controllers │ │ │ │ │ │ │ │ │ ├── Items.java │ │ │ │ │ │ │ │ │ └── Api.java │ │ │ │ │ │ │ │ └── reverse │ │ │ │ │ │ │ │ │ └── controllers │ │ │ │ │ │ │ │ │ └── Application.java │ │ │ │ │ │ │ │ └── full │ │ │ │ │ │ │ │ └── Application.java │ │ │ │ │ │ ├── javaguide.http.routing.query.routes │ │ │ │ │ │ ├── javaguide.http.routing.fixed.routes │ │ │ │ │ │ └── javaguide.http.routing.defaultcontroller.routes │ │ │ │ │ └── index.toc │ │ │ │ ├── application │ │ │ │ │ ├── index.toc │ │ │ │ │ └── code │ │ │ │ │ │ └── javaguide │ │ │ │ │ │ └── application │ │ │ │ │ │ └── httpfilters │ │ │ │ │ │ └── Filters.java │ │ │ │ └── index.toc │ │ │ ├── index.toc │ │ │ └── advanced │ │ │ │ ├── embedding │ │ │ │ └── index.toc │ │ │ │ ├── extending │ │ │ │ ├── index.toc │ │ │ │ ├── code │ │ │ │ │ └── javaguide │ │ │ │ │ │ └── advanced │ │ │ │ │ │ └── extending │ │ │ │ │ │ └── MyApi.java │ │ │ │ └── JavaPlugins.md │ │ │ │ ├── index.toc │ │ │ │ ├── routing │ │ │ │ ├── index.toc │ │ │ │ └── code │ │ │ │ │ ├── javaEmbeddedRouter.scala.html │ │ │ │ │ ├── router │ │ │ │ │ └── RoutingDslBuilder.java │ │ │ │ │ ├── javaguide │ │ │ │ │ └── binder │ │ │ │ │ │ └── controllers │ │ │ │ │ │ └── Users.java │ │ │ │ │ └── javaguide.binder.routes │ │ │ │ └── JavaAdvanced.md │ │ ├── scalaGuide │ │ │ ├── main │ │ │ │ ├── logging │ │ │ │ │ └── index.toc │ │ │ │ ├── cache │ │ │ │ │ └── index.toc │ │ │ │ ├── akka │ │ │ │ │ └── index.toc │ │ │ │ ├── i18n │ │ │ │ │ ├── index.toc │ │ │ │ │ └── code │ │ │ │ │ │ └── scalaguide │ │ │ │ │ │ └── i18n │ │ │ │ │ │ └── messages │ │ │ │ ├── xml │ │ │ │ │ └── index.toc │ │ │ │ ├── dependencyinjection │ │ │ │ │ ├── code │ │ │ │ │ │ ├── scalaguide.dependencyinjection.bar.routes │ │ │ │ │ │ ├── scalaguide.dependencyinjection.injected.routes │ │ │ │ │ │ ├── static.sbt │ │ │ │ │ │ ├── injected.sbt │ │ │ │ │ │ └── scalaguide.dependencyinjection.routes │ │ │ │ │ └── index.toc │ │ │ │ ├── upload │ │ │ │ │ ├── index.toc │ │ │ │ │ └── code │ │ │ │ │ │ ├── scalaguide.upload.fileupload.routes │ │ │ │ │ │ └── scalaguide │ │ │ │ │ │ └── templates │ │ │ │ │ │ └── views │ │ │ │ │ │ └── uploadForm.scala.html │ │ │ │ ├── tests │ │ │ │ │ ├── code │ │ │ │ │ │ ├── scalaguide.tests.guice.routes │ │ │ │ │ │ ├── models │ │ │ │ │ │ │ └── User.scala │ │ │ │ │ │ ├── controllers │ │ │ │ │ │ │ └── HomeController.scala │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ ├── UserRepository.scala │ │ │ │ │ │ │ └── UserService.scala │ │ │ │ │ │ ├── tests │ │ │ │ │ │ │ └── guice │ │ │ │ │ │ │ │ └── controllers │ │ │ │ │ │ │ │ └── Application.scala │ │ │ │ │ │ ├── views │ │ │ │ │ │ │ └── html │ │ │ │ │ │ │ │ └── index.scala │ │ │ │ │ │ └── specs2 │ │ │ │ │ │ │ └── ExamplePlaySpecificationSpec.scala │ │ │ │ │ └── index.toc │ │ │ │ ├── http │ │ │ │ │ ├── code │ │ │ │ │ │ ├── scalaguide │ │ │ │ │ │ │ └── http │ │ │ │ │ │ │ │ ├── routing │ │ │ │ │ │ │ │ └── views │ │ │ │ │ │ │ │ │ └── Clients │ │ │ │ │ │ │ │ │ └── display.scala.html │ │ │ │ │ │ │ │ └── scalasessionflash │ │ │ │ │ │ │ │ └── views │ │ │ │ │ │ │ │ └── index.scala.html │ │ │ │ │ │ ├── scalaguide.http.routing.reverse.routes │ │ │ │ │ │ ├── scalaguide.http.routing.query.routes │ │ │ │ │ │ ├── scalaguide.http.routing.defaultvalue.routes │ │ │ │ │ │ ├── scalaguide.http.routing.fixed.routes │ │ │ │ │ │ └── scalaguide.http.routing.defaultcontroller.routes │ │ │ │ │ ├── images │ │ │ │ │ │ └── routesError.png │ │ │ │ │ └── index.toc │ │ │ │ ├── ws │ │ │ │ │ └── index.toc │ │ │ │ ├── async │ │ │ │ │ └── index.toc │ │ │ │ ├── sql │ │ │ │ │ ├── images │ │ │ │ │ │ └── dbError.png │ │ │ │ │ ├── index.toc │ │ │ │ │ └── code │ │ │ │ │ │ └── ScalaInjectNamed.scala │ │ │ │ ├── forms │ │ │ │ │ ├── images │ │ │ │ │ │ └── lifecycle.png │ │ │ │ │ ├── index.toc │ │ │ │ │ └── code │ │ │ │ │ │ └── scalaguide │ │ │ │ │ │ └── forms │ │ │ │ │ │ ├── scalafieldconstructor │ │ │ │ │ │ ├── userImport.scala.html │ │ │ │ │ │ ├── userDeclare.scala.html │ │ │ │ │ │ └── myFieldConstructorTemplate.scala.html │ │ │ │ │ │ ├── csrf.scala.html │ │ │ │ │ │ └── scalaforms │ │ │ │ │ │ └── views │ │ │ │ │ │ ├── repeat.scala.html │ │ │ │ │ │ └── nested.scala.html │ │ │ │ ├── application │ │ │ │ │ └── index.toc │ │ │ │ ├── json │ │ │ │ │ └── index.toc │ │ │ │ └── index.toc │ │ │ ├── index.toc │ │ │ └── advanced │ │ │ │ ├── embedding │ │ │ │ └── index.toc │ │ │ │ ├── iteratees │ │ │ │ └── index.toc │ │ │ │ ├── extending │ │ │ │ ├── index.toc │ │ │ │ └── ScalaPlugins.md │ │ │ │ ├── routing │ │ │ │ ├── index.toc │ │ │ │ └── code │ │ │ │ │ ├── scalaEmbeddedRouter.scala.html │ │ │ │ │ ├── ApiRouter.scala │ │ │ │ │ ├── scalaguide │ │ │ │ │ └── binder │ │ │ │ │ │ └── controllers │ │ │ │ │ │ └── BinderApplication.scala │ │ │ │ │ └── scalaguide.binder.routes │ │ │ │ ├── index.toc │ │ │ │ └── ScalaAdvanced.md │ │ ├── index.toc │ │ └── commonGuide │ │ │ ├── configuration │ │ │ ├── ws │ │ │ │ └── code │ │ │ │ │ ├── genpassword.sh │ │ │ │ │ └── gentruststore.sh │ │ │ ├── code │ │ │ │ └── Configuration.scala │ │ │ ├── index.toc │ │ │ └── Configuration.md │ │ │ ├── build │ │ │ ├── subprojectError.png │ │ │ ├── images │ │ │ │ └── ivy-report.png │ │ │ ├── code │ │ │ │ ├── SubProjectAssets.scala │ │ │ │ ├── common.build.routes │ │ │ │ └── build.sbt │ │ │ ├── index.toc │ │ │ └── Build.md │ │ │ ├── assets │ │ │ ├── images │ │ │ │ ├── lessError.png │ │ │ │ ├── sassError.png │ │ │ │ ├── ClosureError.png │ │ │ │ └── coffeeError.png │ │ │ ├── code │ │ │ │ ├── Assets.scala │ │ │ │ └── common.assets.routes │ │ │ ├── index.toc │ │ │ └── Assets.md │ │ │ ├── database │ │ │ ├── index.toc │ │ │ ├── images │ │ │ │ ├── evolutions.png │ │ │ │ └── evolutionsError.png │ │ │ └── Databases.md │ │ │ ├── production │ │ │ ├── images │ │ │ │ ├── dist.png │ │ │ │ └── stage.png │ │ │ ├── cloud │ │ │ │ ├── index.toc │ │ │ │ └── DeployingCloud.md │ │ │ ├── index.toc │ │ │ ├── code │ │ │ │ ├── assembly.sbt │ │ │ │ ├── debian.sbt │ │ │ │ ├── production.sbt │ │ │ │ ├── scala │ │ │ │ │ └── CustomSSLEngineProvider.scala │ │ │ │ └── rpm.sbt │ │ │ └── Production.md │ │ │ ├── filters │ │ │ ├── code │ │ │ │ ├── filters.sbt │ │ │ │ ├── CorsFilter.scala │ │ │ │ ├── AllowedHostsFilter.scala │ │ │ │ └── detailedtopics │ │ │ │ │ └── configuration │ │ │ │ │ ├── cors │ │ │ │ │ └── Filters.java │ │ │ │ │ ├── hosts │ │ │ │ │ └── Filters.java │ │ │ │ │ └── headers │ │ │ │ │ └── Filters.java │ │ │ ├── index.toc │ │ │ └── Filters.md │ │ │ └── index.toc │ ├── experimental │ │ └── index.toc │ ├── about │ │ └── index.toc │ ├── hacking │ │ ├── images │ │ │ ├── yourkit.png │ │ │ └── cloudbees.png │ │ └── index.toc │ ├── gettingStarted │ │ ├── images │ │ │ ├── idea.png │ │ │ ├── forms.png │ │ │ ├── activator.png │ │ │ ├── console.png │ │ │ ├── download.png │ │ │ ├── eclipse.png │ │ │ ├── errorPage.png │ │ │ ├── zentask.png │ │ │ ├── comet-clock.png │ │ │ ├── consoleEval.png │ │ │ ├── consoleRun.png │ │ │ ├── helloworld.png │ │ │ ├── webRunning.png │ │ │ ├── webTemplate.png │ │ │ ├── webTutorial.png │ │ │ ├── activatorNew.png │ │ │ ├── consoleCompile.png │ │ │ ├── rps-screenshot.png │ │ │ ├── websocket-chat.png │ │ │ └── computerdatabase.png │ │ └── index.toc │ ├── index.toc │ └── LatestRelease.md ├── src │ ├── main │ │ └── resources │ │ │ └── application.conf │ └── test │ │ └── resources │ │ └── logback.xml ├── style │ ├── external.png │ └── header-pattern.png ├── project │ ├── build.properties │ └── plugins.sbt └── addMarkdownCopyright └── .gitignore /framework/src/play/src/test/conf/application.conf: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /documentation/manual/releases/release26/Highlights26.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /framework/version.sbt: -------------------------------------------------------------------------------- 1 | version in ThisBuild := "2.6.0-SNAPSHOT" 2 | -------------------------------------------------------------------------------- /framework/src/play-integration-test/src/test/resources/testassets/empty.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/logging/index.toc: -------------------------------------------------------------------------------- 1 | JavaLogging:Logging -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/logging/index.toc: -------------------------------------------------------------------------------- 1 | ScalaLogging:Logging -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/multiproject/public/empty.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /documentation/manual/experimental/index.toc: -------------------------------------------------------------------------------- 1 | AkkaHttpServer:Akka HTTP server backend 2 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/akka/index.toc: -------------------------------------------------------------------------------- 1 | JavaAkka:Integrating with Akka -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/cache/index.toc: -------------------------------------------------------------------------------- 1 | JavaCache:Using the Cache -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/cache/index.toc: -------------------------------------------------------------------------------- 1 | ScalaCache:Using the Cache -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/dev-mode/changes/some.txt.1: -------------------------------------------------------------------------------- 1 | changed -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/dev-mode/conf/application.conf: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/dev-mode/public/a/some.txt: -------------------------------------------------------------------------------- 1 | original -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/dev-mode/public/b/some.txt: -------------------------------------------------------------------------------- 1 | original -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/distribution/dist/SomeFile.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/i18n/code/javaguide/i18n/messages.fr: -------------------------------------------------------------------------------- 1 | hello=bonjour -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/akka/index.toc: -------------------------------------------------------------------------------- 1 | ScalaAkka:Integrating with Akka -------------------------------------------------------------------------------- /documentation/src/main/resources/application.conf: -------------------------------------------------------------------------------- 1 | play.crypto.secret = "i am very secret" 2 | -------------------------------------------------------------------------------- /framework/src/play-jdbc-evolutions/src/test/resources/evolutions/test/4.sql: -------------------------------------------------------------------------------- 1 | # --- !Downs 2 | -------------------------------------------------------------------------------- /framework/src/play/src/test/resources/file withspace.css: -------------------------------------------------------------------------------- 1 | h1 { 2 | color: blue; 3 | } 4 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/dev-mode/changes/some.txt.0: -------------------------------------------------------------------------------- 1 | original -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/multiproject-assets/public/empty.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /documentation/manual/about/index.toc: -------------------------------------------------------------------------------- 1 | Philosophy:Play philosophy 2 | PlayUserGroups:Play user groups -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/index.toc: -------------------------------------------------------------------------------- 1 | !main:Main concepts 2 | !advanced:Advanced topics -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/i18n/code/javaguide/i18n/messages.en-US: -------------------------------------------------------------------------------- 1 | hello=howdy -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/index.toc: -------------------------------------------------------------------------------- 1 | !main:Main concepts 2 | !advanced:Advanced topics -------------------------------------------------------------------------------- /framework/src/play-akka-http-server/src/sbt-test/akka-http/system-property/conf/application.conf: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /framework/src/play-integration-test/src/test/resources/messages: -------------------------------------------------------------------------------- 1 | constraint.required=Required! 2 | -------------------------------------------------------------------------------- /framework/src/play-integration-test/src/test/resources/testassets/bar.txt: -------------------------------------------------------------------------------- 1 | This is a test asset. -------------------------------------------------------------------------------- /framework/src/play-integration-test/src/test/resources/testassets/foo.txt: -------------------------------------------------------------------------------- 1 | This is a test asset. -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/multiproject-assets/module/public/empty.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/advanced/embedding/index.toc: -------------------------------------------------------------------------------- 1 | JavaEmbeddingPlay:Embedding Play -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/json/index.toc: -------------------------------------------------------------------------------- 1 | JavaJsonActions:Handling and serving JSON -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/advanced/embedding/index.toc: -------------------------------------------------------------------------------- 1 | ScalaEmbeddingPlay:Embedding Play -------------------------------------------------------------------------------- /framework/src/play-akka-http-server/src/sbt-test/akka-http/play-akka-http-plugin/conf/application.conf: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /framework/src/play-integration-test/src/test/resources/testassets/subdir/baz.txt: -------------------------------------------------------------------------------- 1 | Content of baz.txt. -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/dev-mode/changes/application.conf.1: -------------------------------------------------------------------------------- 1 | fail = true -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/distribution/app/views/.backup-file.scala.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/distribution/dist/SomeFolder/SomeOtherFile.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/routes-compilation/public/css/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/routes-compilation/public/css/minmain.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/i18n/index.toc: -------------------------------------------------------------------------------- 1 | JavaI18N:Internationalization with Messages 2 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/xml/index.toc: -------------------------------------------------------------------------------- 1 | JavaXmlRequests:Handling and serving XML requests -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/i18n/index.toc: -------------------------------------------------------------------------------- 1 | ScalaI18N:Internationalization with Messages 2 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/xml/index.toc: -------------------------------------------------------------------------------- 1 | ScalaXmlRequests:Handling and serving XML requests -------------------------------------------------------------------------------- /framework/src/play-integration-test/src/test/resources/testassets/versioned/sub/foo.txt: -------------------------------------------------------------------------------- 1 | This is a test asset. -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/secret/test: -------------------------------------------------------------------------------- 1 | > playUpdateSecret 2 | > checkSecret 3 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/injected-routes-compilation/public/css/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/routes-compilation/public/css/abcd1234-main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/routes-compilation/public/css/minmain-min.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /documentation/manual/releases/release21/index.toc: -------------------------------------------------------------------------------- 1 | Highlights21:What's new? 2 | Migration21:Migration Guide 3 | -------------------------------------------------------------------------------- /documentation/manual/releases/release22/index.toc: -------------------------------------------------------------------------------- 1 | Highlights22:What's new? 2 | Migration22:Migration Guide 3 | -------------------------------------------------------------------------------- /documentation/manual/releases/release23/index.toc: -------------------------------------------------------------------------------- 1 | Highlights23:What's new? 2 | Migration23:Migration Guide 3 | -------------------------------------------------------------------------------- /documentation/manual/releases/release25/index.toc: -------------------------------------------------------------------------------- 1 | Highlights25:What's new? 2 | !migration25:Migration Guides 3 | -------------------------------------------------------------------------------- /documentation/manual/releases/release26/index.toc: -------------------------------------------------------------------------------- 1 | Highlights26:What's new? 2 | !migration26:Migration Guides 3 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/upload/index.toc: -------------------------------------------------------------------------------- 1 | JavaFileUpload:Direct upload and multipart/form-data -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/dependencyinjection/code/scalaguide.dependencyinjection.bar.routes: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /framework/src/play-integration-test/src/test/resources/testassets/foo bar.txt: -------------------------------------------------------------------------------- 1 | This is a test asset with spaces. -------------------------------------------------------------------------------- /framework/src/play-java-jdbc/src/main/resources/reference.conf: -------------------------------------------------------------------------------- 1 | play.modules.enabled += "play.db.DBModule" 2 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/multiproject/nonplaymodule/src/main/resources/empty.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/nested-secret/test: -------------------------------------------------------------------------------- 1 | > playUpdateSecret 2 | > checkSecret 3 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/injected-routes-compilation/public/css/minmain.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/routes-compilation/public/css/main.css.md5: -------------------------------------------------------------------------------- 1 | abcd1234 -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/routes-compilation/public/css/nonfingerprinted.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/source-mapping/test: -------------------------------------------------------------------------------- 1 | > allProblemsAreFrom routes 5 -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/upload/index.toc: -------------------------------------------------------------------------------- 1 | ScalaFileUpload:Direct upload and multipart/form-data -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/injected-routes-compilation/public/css/abcd1234-main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/injected-routes-compilation/public/css/minmain-min.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/routes-compilation/public/css/abcd1234-minmain-min.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/routes-compilation/public/css/minmain-min.css.md5: -------------------------------------------------------------------------------- 1 | abcd1234 -------------------------------------------------------------------------------- /documentation/style/external.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/style/external.png -------------------------------------------------------------------------------- /framework/src/play-integration-test/src/test/resources/testassets/versioned/sub/foo.txt.md5: -------------------------------------------------------------------------------- 1 | 12345678901234567890123456789012 -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/injected-routes-compilation/public/css/main.css.md5: -------------------------------------------------------------------------------- 1 | abcd1234 -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/injected-routes-compilation/public/css/nonfingerprinted.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/routes-compilation/public/css/nonfingerprinted-minmain-min.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/routes-compilation/public/css/nonfingerprinted-minmain.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/forms/code/javaguide.forms.routes: -------------------------------------------------------------------------------- 1 | POST /form controllers.Application.submit 2 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/tests/code/javaguide.tests.guice.routes: -------------------------------------------------------------------------------- 1 | GET / controllers.Application.index() 2 | -------------------------------------------------------------------------------- /framework/src/play/src/main/java/play/http/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Core Java HTTP API. 3 | */ 4 | package play.http; 5 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/injected-routes-compilation/public/css/abcd1234-minmain-min.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/injected-routes-compilation/public/css/minmain-min.css.md5: -------------------------------------------------------------------------------- 1 | abcd1234 -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/injected-routes-compilation/public/css/nonfingerprinted-minmain.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/dependencyinjection/index.toc: -------------------------------------------------------------------------------- 1 | JavaDependencyInjection:Dependency Injection with Guice 2 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/tests/code/javaguide.tests.routes: -------------------------------------------------------------------------------- 1 | GET / controllers.HomeController.index() 2 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/ws/code/javaguide/ws/login.scala.html: -------------------------------------------------------------------------------- 1 | @(message: String) 2 | 3 | Message: @message 4 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/tests/code/scalaguide.tests.guice.routes: -------------------------------------------------------------------------------- 1 | GET / controllers.Application.index() 2 | -------------------------------------------------------------------------------- /documentation/style/header-pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/style/header-pattern.png -------------------------------------------------------------------------------- /framework/src/play-java/src/test/resources/messages.en-US: -------------------------------------------------------------------------------- 1 | customFormats.date=MM-dd-yyyy 2 | formats.date=dd/MM/yyyy 3 | hello=Aloha -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/injected-routes-compilation/public/css/nonfingerprinted-minmain-min.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /documentation/manual/releases/release26/migration26/index.toc: -------------------------------------------------------------------------------- 1 | Migration26:Migration Guide 2 | MessagesMigration26:Messages Migration 3 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/aggregate-reverse-routes/a/conf/a.routes: -------------------------------------------------------------------------------- 1 | GET /index controllers.a.A.index 2 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/aggregate-reverse-routes/b/conf/b.routes: -------------------------------------------------------------------------------- 1 | GET /index controllers.b.B.index 2 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/aggregate-reverse-routes/c/conf/c.routes: -------------------------------------------------------------------------------- 1 | GET /index controllers.c.C.index 2 | -------------------------------------------------------------------------------- /documentation/manual/working/index.toc: -------------------------------------------------------------------------------- 1 | javaGuide:Play for Java developers 2 | scalaGuide:Play for Scala developers 3 | commonGuide:Common topics -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/advanced/iteratees/index.toc: -------------------------------------------------------------------------------- 1 | Iteratees:Iteratees 2 | Enumerators:Enumerators 3 | Enumeratees:Enumeratees -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/http/code/scalaguide/http/routing/views/Clients/display.scala.html: -------------------------------------------------------------------------------- 1 | @(msg: String) 2 | @msg 3 | -------------------------------------------------------------------------------- /framework/project/build.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2009-2016 Lightbend Inc. 3 | # 4 | sbt.version=0.13.13 5 | -------------------------------------------------------------------------------- /framework/src/play-guice/src/main/resources/reference.conf: -------------------------------------------------------------------------------- 1 | 2 | play.application.loader = "play.api.inject.guice.GuiceApplicationLoader" 3 | -------------------------------------------------------------------------------- /framework/src/play-integration-test/src/test/resources/testassets/versioned/sub/12345678901234567890123456789012-foo.txt: -------------------------------------------------------------------------------- 1 | This is a test asset. -------------------------------------------------------------------------------- /framework/src/routes-compiler/src/test/resources/complexNames.routes: -------------------------------------------------------------------------------- 1 | GET /foo controllers.FooController.foo(`bar[]`: List[String]) 2 | -------------------------------------------------------------------------------- /documentation/project/build.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2009-2016 Lightbend Inc. 3 | # 4 | sbt.version=0.13.13 5 | -------------------------------------------------------------------------------- /framework/src/play-java-jpa/src/main/resources/reference.conf: -------------------------------------------------------------------------------- 1 | play { 2 | modules { 3 | enabled += "play.db.jpa.JPAModule" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /framework/src/play-java/src/main/resources/ebean.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2009-2016 Lightbend Inc. 3 | # 4 | -------------------------------------------------------------------------------- /documentation/manual/hacking/images/yourkit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/hacking/images/yourkit.png -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/advanced/extending/index.toc: -------------------------------------------------------------------------------- 1 | JavaPlayModules:Writing Play modules 2 | JavaPlugins:Migrating from Plugins API 3 | -------------------------------------------------------------------------------- /framework/src/play-akka-http-server/src/sbt-test/akka-http/system-property/conf/routes: -------------------------------------------------------------------------------- 1 | GET / controllers.Application.index 2 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/incremental-compilation/b.routes.1: -------------------------------------------------------------------------------- 1 | GET /index controllers.c.Application.index -------------------------------------------------------------------------------- /documentation/manual/gettingStarted/images/idea.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/gettingStarted/images/idea.png -------------------------------------------------------------------------------- /documentation/manual/hacking/images/cloudbees.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/hacking/images/cloudbees.png -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/configuration/ws/code/genpassword.sh: -------------------------------------------------------------------------------- 1 | # #context 2 | export PW=`pwgen -Bs 10 1` 3 | echo $PW > password 4 | # #context -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/dependencyinjection/code/static.sbt: -------------------------------------------------------------------------------- 1 | //#content 2 | routesGenerator := StaticRoutesGenerator 3 | //#content 4 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/advanced/extending/index.toc: -------------------------------------------------------------------------------- 1 | ScalaPlayModules:Writing Play modules 2 | ScalaPlugins:Migrating from Plugins API 3 | -------------------------------------------------------------------------------- /framework/src/play-akka-http-server/src/sbt-test/akka-http/play-akka-http-plugin/conf/routes: -------------------------------------------------------------------------------- 1 | GET / controllers.Application.index 2 | -------------------------------------------------------------------------------- /framework/src/play-java-ws/src/main/java/play/libs/openid/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Provides an OpenID client. 3 | */ 4 | package play.libs.openid; 5 | -------------------------------------------------------------------------------- /framework/src/play-jdbc/src/main/resources/jndi.properties: -------------------------------------------------------------------------------- 1 | java.naming.provider.url=/ 2 | java.naming.factory.initial=tyrex.naming.MemoryContextFactory 3 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/incremental-compilation/a.routes: -------------------------------------------------------------------------------- 1 | GET /index controllers.a.Application.index 2 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/incremental-compilation/b.routes: -------------------------------------------------------------------------------- 1 | GET /index controllers.b.Application.index 2 | -------------------------------------------------------------------------------- /documentation/manual/gettingStarted/images/forms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/gettingStarted/images/forms.png -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/i18n/code/javaguide/i18n/helloscalatemplate.scala.html: -------------------------------------------------------------------------------- 1 | @* #template *@ 2 | @Messages("hello") 3 | @* #template *@ 4 | -------------------------------------------------------------------------------- /framework/src/play-guice/src/main/java/play/libs/akka/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Utility methods for working with Akka. 3 | */ 4 | package play.libs.akka; 5 | -------------------------------------------------------------------------------- /documentation/manual/gettingStarted/images/activator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/gettingStarted/images/activator.png -------------------------------------------------------------------------------- /documentation/manual/gettingStarted/images/console.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/gettingStarted/images/console.png -------------------------------------------------------------------------------- /documentation/manual/gettingStarted/images/download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/gettingStarted/images/download.png -------------------------------------------------------------------------------- /documentation/manual/gettingStarted/images/eclipse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/gettingStarted/images/eclipse.png -------------------------------------------------------------------------------- /documentation/manual/gettingStarted/images/errorPage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/gettingStarted/images/errorPage.png -------------------------------------------------------------------------------- /documentation/manual/gettingStarted/images/zentask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/gettingStarted/images/zentask.png -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/sql/index.toc: -------------------------------------------------------------------------------- 1 | JavaDatabase:Configuring and using JDBC 2 | JavaJPA:Integrating with JPA 3 | JavaEbean:Using Ebean ORM 4 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/distribution-without-documentation/conf/routes: -------------------------------------------------------------------------------- 1 | GET / controllers.Application.index 2 | -------------------------------------------------------------------------------- /documentation/manual/gettingStarted/images/comet-clock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/gettingStarted/images/comet-clock.png -------------------------------------------------------------------------------- /documentation/manual/gettingStarted/images/consoleEval.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/gettingStarted/images/consoleEval.png -------------------------------------------------------------------------------- /documentation/manual/gettingStarted/images/consoleRun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/gettingStarted/images/consoleRun.png -------------------------------------------------------------------------------- /documentation/manual/gettingStarted/images/helloworld.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/gettingStarted/images/helloworld.png -------------------------------------------------------------------------------- /documentation/manual/gettingStarted/images/webRunning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/gettingStarted/images/webRunning.png -------------------------------------------------------------------------------- /documentation/manual/gettingStarted/images/webTemplate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/gettingStarted/images/webTemplate.png -------------------------------------------------------------------------------- /documentation/manual/gettingStarted/images/webTutorial.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/gettingStarted/images/webTutorial.png -------------------------------------------------------------------------------- /framework/src/play/src/main/java/play/inject/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Provides dependency injection utilities for Play lifecycle. 3 | */ 4 | package play.inject; 5 | -------------------------------------------------------------------------------- /framework/src/play/src/main/java/play/libs/streams/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Utility methods for working with Akka Streams. 3 | */ 4 | package play.libs.streams; 5 | -------------------------------------------------------------------------------- /documentation/manual/gettingStarted/images/activatorNew.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/gettingStarted/images/activatorNew.png -------------------------------------------------------------------------------- /documentation/manual/gettingStarted/images/consoleCompile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/gettingStarted/images/consoleCompile.png -------------------------------------------------------------------------------- /documentation/manual/gettingStarted/images/rps-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/gettingStarted/images/rps-screenshot.png -------------------------------------------------------------------------------- /documentation/manual/gettingStarted/images/websocket-chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/gettingStarted/images/websocket-chat.png -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/advanced/index.toc: -------------------------------------------------------------------------------- 1 | JavaAdvanced:Section contents 2 | routing:Advanced routing 3 | extending:Extending Play 4 | embedding:Embedding Play 5 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/forms/index.toc: -------------------------------------------------------------------------------- 1 | JavaForms:Form definitions 2 | JavaFormHelpers:Using the form template helpers 3 | JavaCsrf:Protecting against CSRF -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/tests/code/javaguide/tests/index.scala.html: -------------------------------------------------------------------------------- 1 | @(title: String) 2 | 3 |

@title

4 | click me 5 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/ws/index.toc: -------------------------------------------------------------------------------- 1 | JavaWS:The Play WS API 2 | JavaOpenID:Connecting to OpenID services 3 | JavaOAuth:Accessing resources protected by OAuth -------------------------------------------------------------------------------- /framework/src/play-java/src/test/resources/messages.fr: -------------------------------------------------------------------------------- 1 | customFormats.date=dd.MM.yyyy 2 | formats.date=MM_dd_yyyy 3 | error.invalid.dueDate=Date invalide 4 | patterns.zip=[5-8]{3} -------------------------------------------------------------------------------- /documentation/manual/gettingStarted/images/computerdatabase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/gettingStarted/images/computerdatabase.png -------------------------------------------------------------------------------- /documentation/manual/releases/release24/index.toc: -------------------------------------------------------------------------------- 1 | Highlights24:What's new? 2 | !migration24:Migration Guides 3 | ReactiveStreamsIntegration:Reactive Streams integration (experimental) -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/advanced/routing/index.toc: -------------------------------------------------------------------------------- 1 | JavaJavascriptRouter: Javascript Router 2 | JavaRoutingDsl:Embedded Routing DSL 3 | RequestBinders:Custom Binding 4 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/dependencyinjection/code/javaguide.di.routes: -------------------------------------------------------------------------------- 1 | #content 2 | GET /some/path @controllers.Application.index() 3 | #content 4 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/ws/index.toc: -------------------------------------------------------------------------------- 1 | ScalaWS:The Play WS API 2 | ScalaOpenID:Connecting to OpenID services 3 | ScalaOAuth:Accessing resources protected by OAuth -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/distribution/public/stylesheets/main.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/build/subprojectError.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/working/commonGuide/build/subprojectError.png -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/async/code/javaguide.async.routes: -------------------------------------------------------------------------------- 1 | # Verify the controller's method signature 2 | GET /index controllers.Application.index() 3 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/sql/images/dbError.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/working/javaGuide/main/sql/images/dbError.png -------------------------------------------------------------------------------- /framework/src/play-java/src/test/resources/messages: -------------------------------------------------------------------------------- 1 | error.custom=It looks like something {0} 2 | error.customarg=was not correct 3 | customFormats.date=dd/MM/yyyy 4 | patterns.zip=[1-4]{4} -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/multiproject/app/Root.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | object Root 5 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/play-position-mapper/app/views/index.scala.html: -------------------------------------------------------------------------------- 1 | This is the first line. 2 | 3 | Foo: @foo.bar 4 | 5 | Here is the last line. 6 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/play-position-mapper/conf/routes: -------------------------------------------------------------------------------- 1 | # Here is the first line 2 | 3 | GET / controllers.Foo.index 4 | 5 | # Here is the last line 6 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/routes-compilation/test: -------------------------------------------------------------------------------- 1 | # Stage it, so it's easier to debug 2 | > playRoutes 3 | > compile 4 | > test:compile 5 | > test 6 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/assets/images/lessError.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/working/commonGuide/assets/images/lessError.png -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/assets/images/sassError.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/working/commonGuide/assets/images/sassError.png -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/build/images/ivy-report.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/working/commonGuide/build/images/ivy-report.png -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/database/index.toc: -------------------------------------------------------------------------------- 1 | Databases:Databases 2 | Developing-with-the-H2-Database:Using an in memory H2 database 3 | Evolutions:Managing database evolutions -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/production/images/dist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/working/commonGuide/production/images/dist.png -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/production/images/stage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/working/commonGuide/production/images/stage.png -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/async/index.toc: -------------------------------------------------------------------------------- 1 | JavaAsync:Handling asynchronous results 2 | JavaStream:Streaming HTTP responses 3 | JavaComet:Comet 4 | JavaWebSockets:WebSockets 5 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/async/index.toc: -------------------------------------------------------------------------------- 1 | ScalaAsync:Asynchronous results 2 | ScalaStream:Streaming HTTP responses 3 | ScalaComet:Comet 4 | ScalaWebSockets:WebSockets 5 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/sql/images/dbError.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/working/scalaGuide/main/sql/images/dbError.png -------------------------------------------------------------------------------- /framework/project/project/buildinfo.sbt: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2009-2016 Lightbend Inc. 3 | // 4 | 5 | addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.3.2") 6 | -------------------------------------------------------------------------------- /framework/src/play-server/src/test/resources/application.conf: -------------------------------------------------------------------------------- 1 | # Needed so play-server tests run 2 | play.crypto.secret = "MwWGiFxb0bkpy=TU`ON=O23;3TqKgHAJWqSE3XsSfE`ByOqZcLuwmvc;^/;wCxqR" 3 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/assets/images/ClosureError.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/working/commonGuide/assets/images/ClosureError.png -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/assets/images/coffeeError.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/working/commonGuide/assets/images/coffeeError.png -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/database/images/evolutions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/working/commonGuide/database/images/evolutions.png -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/http/images/routesError.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/working/javaGuide/main/http/images/routesError.png -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/forms/images/lifecycle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/working/scalaGuide/main/forms/images/lifecycle.png -------------------------------------------------------------------------------- /framework/src/play-filters-helpers/src/test/resources/helloWorld.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/framework/src/play-filters-helpers/src/test/resources/helloWorld.txt.gz -------------------------------------------------------------------------------- /framework/src/play-java/src/main/resources/reference.conf: -------------------------------------------------------------------------------- 1 | play { 2 | modules { 3 | enabled += "play.inject.BuiltInModule" 4 | enabled += "play.core.ObjectMapperModule" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/dev-mode/project/build.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2009-2016 Lightbend Inc. 3 | # 4 | sbt.version=0.13.13 5 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/secret/project/build.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2009-2016 Lightbend Inc. 3 | # 4 | sbt.version=0.13.13 5 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/aggregate-reverse-routes/conf/routes: -------------------------------------------------------------------------------- 1 | -> /a a.Routes 2 | -> /b b.Routes 3 | -> /c c.Routes 4 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/injected-routes-compilation/test: -------------------------------------------------------------------------------- 1 | # Stage it, so it's easier to debug 2 | > playRoutes 3 | > compile 4 | > test:compile 5 | > test 6 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/http/code/javaguide.http.routing.reverse.routes: -------------------------------------------------------------------------------- 1 | #hello 2 | # Hello action 3 | GET /hello/:name controllers.Application.hello(name) 4 | #hello 5 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/i18n/code/javaguide/i18n/explicitjavatemplate.scala.html: -------------------------------------------------------------------------------- 1 | @* #template *@ 2 | @(messages: play.i18n.Messages) 3 | @messages.at("hello") 4 | @* #template *@ 5 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/dependencyinjection/index.toc: -------------------------------------------------------------------------------- 1 | ScalaDependencyInjection:Runtime dependency injection 2 | ScalaCompileTimeDependencyInjection:Compile time dependency injection -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/http/images/routesError.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/working/scalaGuide/main/http/images/routesError.png -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/sql/index.toc: -------------------------------------------------------------------------------- 1 | ScalaDatabase:Configuring and using JDBC 2 | slick:Using Slick to access your database 3 | ScalaAnorm:Using Anorm to access your database 4 | -------------------------------------------------------------------------------- /framework/src/play-java-ws/src/main/resources/reference.conf: -------------------------------------------------------------------------------- 1 | play { 2 | modules { 3 | enabled += "play.libs.ws.ahc.AhcWSModule" 4 | enabled += "play.libs.openid.OpenIdModule" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /framework/src/play-jdbc-evolutions/src/test/resources/evolutions/test/3.sql: -------------------------------------------------------------------------------- 1 | # --- !Ups 2 | 3 | insert into test (id, name) values (3, 'charlie'); 4 | insert into test (id, name) values (4, 'dave'); 5 | -------------------------------------------------------------------------------- /framework/src/play/src/main/java/play/libs/concurrent/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Concurrency utilities for handling CompletionStage and ExecutionContexts. 3 | */ 4 | package play.libs.concurrent; 5 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/distribution/app/views/index.scala.html: -------------------------------------------------------------------------------- 1 | @(message: String) 2 | 3 | @main("Welcome to Play") { 4 | 5 | @play20.welcome(message) 6 | 7 | } 8 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/distribution/project/build.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2009-2016 Lightbend Inc. 3 | # 4 | sbt.version=0.13.13 5 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/multiproject/project/build.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2009-2016 Lightbend Inc. 3 | # 4 | sbt.version=0.13.13 5 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/nested-secret/project/build.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2009-2016 Lightbend Inc. 3 | # 4 | sbt.version=0.13.13 5 | -------------------------------------------------------------------------------- /documentation/manual/releases/release24/migration24/index.toc: -------------------------------------------------------------------------------- 1 | Migration24:Migration Guide 2 | GlobalSettings:Removing `GlobalSettings` 3 | Anorm:Migrating Anorm 4 | PluginsToModules:Migrating Plugin to Module -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/database/images/evolutionsError.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/documentation/manual/working/commonGuide/database/images/evolutionsError.png -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/akka/code/javaguide/akka/akka.conf: -------------------------------------------------------------------------------- 1 | #conf 2 | akka.actor.default-dispatcher.fork-join-executor.pool-size-max = 64 3 | akka.actor.debug.receive = on 4 | #conf 5 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/advanced/routing/index.toc: -------------------------------------------------------------------------------- 1 | ScalaSirdRouter:String Interpolating Routing DSL 2 | ScalaJavascriptRouting:Javascript routing 3 | ScalaRequestBinders:Custom Binding 4 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/http/code/scalaguide.http.routing.reverse.routes: -------------------------------------------------------------------------------- 1 | # #route 2 | # Hello action 3 | GET /hello/:name controllers.Application.hello(name) 4 | # #route 5 | -------------------------------------------------------------------------------- /framework/src/play-akka-http-server/src/sbt-test/akka-http/system-property/project/build.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2009-2016 Lightbend Inc. 3 | # 4 | sbt.version=0.13.13 5 | -------------------------------------------------------------------------------- /framework/src/play-integration-test/src/test/resources/testassets/foo.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/framework/src/play-integration-test/src/test/resources/testassets/foo.txt.gz -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/multiproject-assets/project/build.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2009-2016 Lightbend Inc. 3 | # 4 | sbt.version=0.13.13 5 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/play-position-mapper/project/build.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2009-2016 Lightbend Inc. 3 | # 4 | sbt.version=0.13.13 5 | -------------------------------------------------------------------------------- /documentation/manual/releases/index.toc: -------------------------------------------------------------------------------- 1 | Releases:About Play releases 2 | !release26:Play 2.6 3 | !release25:Play 2.5 4 | !release24:Play 2.4 5 | !release23:Play 2.3 6 | !release22:Play 2.2 7 | !release21:Play 2.1 -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/i18n/code/javaguide/i18n/hellotemplate.scala.html: -------------------------------------------------------------------------------- 1 | @* #template *@ 2 | @import play.mvc.Http.Context.Implicit._ 3 | @() 4 | @{messages().at("hello")} 5 | @* #template *@ -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/dependencyinjection/code/scalaguide.dependencyinjection.injected.routes: -------------------------------------------------------------------------------- 1 | #injected 2 | GET /some/path @controllers.Application.index 3 | #injected 4 | -------------------------------------------------------------------------------- /framework/src/play-java-ws/src/main/java/play/libs/ws/WSRequestFilter.java: -------------------------------------------------------------------------------- 1 | package play.libs.ws; 2 | 3 | public interface WSRequestFilter { 4 | WSRequestExecutor apply(WSRequestExecutor executor); 5 | } 6 | -------------------------------------------------------------------------------- /framework/src/play-java-ws/src/test/resources/play/libs/ws/play_full_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/framework/src/play-java-ws/src/test/resources/play/libs/ws/play_full_color.png -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/dev-mode/app/assets/main.less: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | .original { 5 | color: blue; 6 | } 7 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/dev-mode/changes/main.less.1: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | .first { 5 | color: blue; 6 | } 7 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/dev-mode/changes/new.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | .original { 5 | color: blue; 6 | } 7 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/dev-mode/changes/new.css.1: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | .first { 5 | color: blue; 6 | } 7 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/dev-mode/changes/some.css.0: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | .original { 5 | color: blue; 6 | } 7 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/dev-mode/changes/some.css.1: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | .first { 5 | color: blue; 6 | } 7 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/multiproject/app/assets/main.less: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | h2 { 5 | color: red; 6 | } 7 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/multiproject/playmodule/app/PlayModule.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | object PlayModule 5 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/multiproject/transitive/app/Transitive.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | object Transitive 5 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/routes-compilation/project/build.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2009-2016 Lightbend Inc. 3 | # 4 | sbt.version=0.13.13 5 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/source-mapping/project/build.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2009-2016 Lightbend Inc. 3 | # 4 | sbt.version=0.13.13 5 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/application/index.toc: -------------------------------------------------------------------------------- 1 | JavaApplication:Application settings 2 | JavaEssentialAction:Essential Actions 3 | JavaHttpFilters:HTTP filters 4 | JavaErrorHandling:Error handling 5 | -------------------------------------------------------------------------------- /framework/src/play-akka-http-server/src/sbt-test/akka-http/play-akka-http-plugin/project/build.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2009-2016 Lightbend Inc. 3 | # 4 | sbt.version=0.13.13 5 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/dev-mode/public/css/some.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | .original { 5 | color: blue; 6 | } 7 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/multiproject-assets/app/assets/main.less: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | h2 { 5 | color: red; 6 | } 7 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/incremental-compilation/a.routes.1: -------------------------------------------------------------------------------- 1 | GET /index controllers.a.Application.index 2 | GET /foo controllers.a.Application.foo 3 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/incremental-compilation/project/build.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2009-2016 Lightbend Inc. 3 | # 4 | sbt.version=0.13.13 5 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/filters/code/filters.sbt: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2009-2016 Lightbend Inc. 3 | // 4 | 5 | //#content 6 | libraryDependencies += filters 7 | //#content 8 | -------------------------------------------------------------------------------- /framework/src/play-java-forms/src/test/java/play/data/LoginCheck.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.data; 5 | 6 | public interface LoginCheck { 7 | } -------------------------------------------------------------------------------- /framework/src/play/src/main/java/play/i18n/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | 5 | /** 6 | * Provides the i18n API. 7 | */ 8 | package play.i18n; 9 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/distribution-without-documentation/project/build.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2009-2016 Lightbend Inc. 3 | # 4 | sbt.version=0.13.13 5 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/multiproject/playmodule/app/assets/module.less: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | h1 { 5 | color: blue; 6 | } 7 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/aggregate-reverse-routes/project/build.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2009-2016 Lightbend Inc. 3 | # 4 | sbt.version=0.13.13 5 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/injected-routes-compilation/project/build.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2009-2016 Lightbend Inc. 3 | # 4 | sbt.version=0.13.13 5 | -------------------------------------------------------------------------------- /documentation/manual/releases/release25/migration25/index.toc: -------------------------------------------------------------------------------- 1 | Migration25:Migration Guide 2 | StreamsMigration25:Streams Migration Guide 3 | JavaMigration25:Java Migration Guide 4 | CryptoMigration25:Crypto Migration Guide 5 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/advanced/index.toc: -------------------------------------------------------------------------------- 1 | ScalaAdvanced:Section contents 2 | iteratees:Handling data streams reactively 3 | routing:Advanced routing 4 | extending:Extending Play 5 | embedding:Embedding Play 6 | -------------------------------------------------------------------------------- /framework/src/play-java-forms/src/test/java/play/data/PasswordCheck.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.data; 5 | 6 | public interface PasswordCheck { 7 | } -------------------------------------------------------------------------------- /framework/src/play-java/src/test/java/play/libs/testmodel/AC1.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.libs.testmodel; 5 | 6 | public @interface AC1 { 7 | } 8 | -------------------------------------------------------------------------------- /framework/src/play-java/src/test/java/play/libs/testmodel/C1.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.libs.testmodel; 5 | 6 | public @AC1 class C1 { 7 | } 8 | -------------------------------------------------------------------------------- /framework/src/play-test/src/main/java/play/test/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | 5 | /** 6 | * Contains test helpers. 7 | */ 8 | package play.test; 9 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/multiproject-assets/module/app/assets/module.less: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | h1 { 5 | color: blue; 6 | } 7 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/multiproject/test: -------------------------------------------------------------------------------- 1 | # Check that the monitored files are right 2 | > checkPlayMonitoredFiles 3 | 4 | # Check that compile everything works 5 | > checkPlayCompileEverything 6 | -------------------------------------------------------------------------------- /framework/src/play-cache/src/main/java/play/cache/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | 5 | /** 6 | * Provides the Cache API. 7 | */ 8 | package play.cache; 9 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/distribution/conf/alternate.conf: -------------------------------------------------------------------------------- 1 | play.crypto.secret=";1[WE]JmK;XMCxV=S2P6kYl?A<^YcKYW3aui[SmusaQlkjq97A`M8l_S:iV?OmDh" 2 | play.i18n.langs = [ "en" ] 3 | some.config="bar" 4 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/distribution/conf/application.conf: -------------------------------------------------------------------------------- 1 | play.crypto.secret=";1[WE]JmK;XMCxV=S2P6kYl?A<^YcKYW3aui[SmusaQlkjq97A`M8l_S:iV?OmDh" 2 | play.i18n.langs = [ "en" ] 3 | some.config="foo" 4 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/multiproject/nonplaymodule/src/main/scala/NonPlayModule.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | object NonPlayModule 5 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/secret/README: -------------------------------------------------------------------------------- 1 | This is your new Play application 2 | ===================================== 3 | 4 | This file will be packaged with your application, when using `play dist`. 5 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/application/index.toc: -------------------------------------------------------------------------------- 1 | ScalaApplication:Application Settings 2 | ScalaHttpRequestHandlers:HTTP request handlers 3 | ScalaEssentialAction:Essential Actions 4 | ScalaHttpFilters:HTTP filters 5 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/forms/index.toc: -------------------------------------------------------------------------------- 1 | ScalaForms:Handling form submission 2 | ScalaCsrf:Protecting against CSRF 3 | ScalaCustomValidations:Custom Validations 4 | ScalaCustomFieldConstructors:Custom Field Constructors -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/http/code/scalaguide.http.routing.query.routes: -------------------------------------------------------------------------------- 1 | # #page 2 | # Extract the page parameter from the query string. 3 | GET / controllers.Application.show(page) 4 | # #page 5 | -------------------------------------------------------------------------------- /framework/src/play-logback/src/main/resources/logger-configurator.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2009-2016 Lightbend Inc. 3 | # 4 | play.logger.configurator=play.api.libs.logback.LogbackLoggerConfigurator 5 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/dev-mode/conf/routes: -------------------------------------------------------------------------------- 1 | GET / controllers.Application.index 2 | GET /assets/*file controllers.Assets.versioned(path = "/public", file: Asset) 3 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/distribution-without-documentation/test: -------------------------------------------------------------------------------- 1 | # Build the distribution and ensure that there is no documentation 2 | > stage 3 | $ absent target/universal/stage/share 4 | 5 | -> compile:doc -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/distribution/README: -------------------------------------------------------------------------------- 1 | This is your new Play application 2 | ===================================== 3 | 4 | This file will be packaged with your application, when using `play dist`. 5 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/nested-secret/README: -------------------------------------------------------------------------------- 1 | This is your new Play application 2 | ===================================== 3 | 4 | This file will be packaged with your application, when using `play dist`. 5 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/aggregate-reverse-routes/nonplay/src/main/scala/nonplay.NonPlay.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | object NonPlay 5 | -------------------------------------------------------------------------------- /framework/src/play-filters-helpers/src/test/resources/application.conf: -------------------------------------------------------------------------------- 1 | play.crypto.secret = "abc" 2 | 3 | actor { 4 | default-dispatcher = { 5 | fork-join-executor { 6 | parallelism-max = 2 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /framework/src/play-java-jpa/src/main/java/play/db/jpa/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | 5 | /** 6 | * Provides JPA ORM integration. 7 | */ 8 | package play.db.jpa; 9 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/distribution/public/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/todo/playframework/master/framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/distribution/public/images/favicon.png -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/http/code/javaguide.http.routing.defaultvalue.routes: -------------------------------------------------------------------------------- 1 | # #clients 2 | # Pagination links, like /clients?page=3 3 | GET /clients controllers.Clients.list(page: Int ?= 1) 4 | # #clients 5 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/dependencyinjection/code/static.sbt: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2009-2016 Lightbend Inc. 3 | // 4 | 5 | //#content 6 | routesGenerator := StaticRoutesGenerator 7 | //#content 8 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/http/code/scalaguide.http.routing.defaultvalue.routes: -------------------------------------------------------------------------------- 1 | # #clients 2 | # Pagination links, like /clients?page=3 3 | GET /clients controllers.Clients.list(page: Int ?= 1) 4 | # #clients 5 | -------------------------------------------------------------------------------- /documentation/src/test/resources/logback.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /framework/src/play-java-jdbc/src/main/java/play/db/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | 5 | /** 6 | * Provides the JDBC database access API. 7 | */ 8 | package play.db; 9 | -------------------------------------------------------------------------------- /framework/src/play-java-jpa/src/test/resources/evolutions/default/2.sql: -------------------------------------------------------------------------------- 1 | # --- Sample dataset 2 | 3 | # --- !Ups 4 | 5 | insert into TestEntity (id, name) values (1, 'test1'); 6 | 7 | # --- !Downs 8 | 9 | delete from TestEntity; 10 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/dependencyinjection/code/injected.sbt: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2009-2016 Lightbend Inc. 3 | // 4 | 5 | //#content 6 | routesGenerator := InjectedRoutesGenerator 7 | //#content 8 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/http/code/javaguide/http/views/index.scala.html: -------------------------------------------------------------------------------- 1 | @() 2 | @* #flash-template *@ 3 | @if(flash.containsKey("success")) { 4 | @flash.get("success") 5 | } else { 6 | Welcome! 7 | } 8 | @* #flash-template *@ 9 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/dependencyinjection/code/injected.sbt: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2009-2016 Lightbend Inc. 3 | // 4 | 5 | //#content 6 | routesGenerator := InjectedRoutesGenerator 7 | //#content 8 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/distribution-without-documentation/conf/application.conf: -------------------------------------------------------------------------------- 1 | play.crypto.secret=";1[WE]JmK;XMCxV=S2P6kYl?A<^YcKYW3aui[SmusaQlkjq97A`M8l_S:iV?OmDh" 2 | play.i18n.langs = [ "en" ] 3 | some.config="foo" 4 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/secret/project/plugins.sbt: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2009-2016 Lightbend Inc. 3 | // 4 | addSbtPlugin("com.typesafe.play" % "sbt-plugin" % sys.props("project.version")) 5 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/routes-compilation/conf/module.routes: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2009-2016 Lightbend Inc. 3 | # 4 | GET /index controllers.module.ModuleController.index 5 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/build/code/SubProjectAssets.scala: -------------------------------------------------------------------------------- 1 | package common.build 2 | 3 | package object controllers { 4 | type AssetsBuilder = _root_.controllers.AssetsBuilder 5 | type Assets = _root_.controllers.Assets 6 | } 7 | 8 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/http/code/scalaguide/http/scalasessionflash/views/index.scala.html: -------------------------------------------------------------------------------- 1 | @* #flash-template *@ 2 | @()(implicit flash: Flash) 3 | ... 4 | @flash.get("success").getOrElse("Welcome!") 5 | ... 6 | @* #flash-template *@ 7 | -------------------------------------------------------------------------------- /framework/src/play-ws/src/test/scala/play/api/libs/openid/RichUrl.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.api.libs.openid 5 | 6 | trait RichUrl[A] { 7 | def hostAndPath: String 8 | } 9 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/distribution-without-documentation/README: -------------------------------------------------------------------------------- 1 | This is your new Play application 2 | ===================================== 3 | 4 | This file will be packaged with your application, when using `play dist`. 5 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/filters/index.toc: -------------------------------------------------------------------------------- 1 | Filters:Play HTTP filters 2 | GzipEncoding:Configuring gzip encoding 3 | SecurityHeaders:Configuring security headers 4 | CorsFilter:Configuring CORS 5 | AllowedHostsFilter:Configuring allowed hosts 6 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/cache/code/cache.sbt: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2009-2016 Lightbend Inc. 3 | // 4 | 5 | //#cache-sbt-dependencies 6 | libraryDependencies ++= Seq( 7 | cache 8 | ) 9 | //#cache-sbt-dependencies -------------------------------------------------------------------------------- /framework/src/play-java-forms/src/test/java/play/data/Red.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.data; 5 | 6 | @ValidateRed 7 | public class Red { 8 | public String name; 9 | } 10 | -------------------------------------------------------------------------------- /framework/src/play-jdbc-evolutions/src/test/resources/evolutions/test/1.sql: -------------------------------------------------------------------------------- 1 | # --- Test database schema 2 | 3 | # --- !Ups 4 | 5 | create table test (id bigint not null, name varchar(255)); 6 | 7 | # --- !Downs 8 | 9 | drop table if exists test; 10 | -------------------------------------------------------------------------------- /framework/src/play/src/main/java/play/Mode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play; 5 | 6 | /** Application mode, either `DEV`, `TEST`, or `PROD`. */ 7 | public enum Mode { DEV, TEST, PROD } 8 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/multiproject/project/plugins.sbt: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2009-2016 Lightbend Inc. 3 | // 4 | 5 | addSbtPlugin("com.typesafe.play" % "sbt-plugin" % sys.props("project.version")) 6 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/nested-secret/project/plugins.sbt: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2009-2016 Lightbend Inc. 3 | // 4 | addSbtPlugin("com.typesafe.play" % "sbt-plugin" % sys.props("project.version")) 5 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/injected-routes-compilation/conf/module.routes: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2009-2016 Lightbend Inc. 3 | # 4 | GET /index controllers.module.ModuleController.index 5 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/ws/code/javaws.sbt: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2009-2016 Lightbend Inc. 3 | // 4 | 5 | //#javaws-sbt-dependencies 6 | libraryDependencies ++= Seq( 7 | javaWs 8 | ) 9 | //#javaws-sbt-dependencies -------------------------------------------------------------------------------- /framework/src/play-java-forms/src/main/resources/reference.conf: -------------------------------------------------------------------------------- 1 | play { 2 | modules { 3 | enabled += "play.data.FormFactoryModule" 4 | enabled += "play.data.format.FormattersModule" 5 | enabled += "play.data.validation.ValidatorsModule" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /framework/src/play/src/main/java/play/mvc/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | 5 | /** 6 | * Provides the Controller/Action/Result API for handling HTTP requests. 7 | */ 8 | package play.mvc; 9 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/play-position-mapper/project/plugins.sbt: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2009-2016 Lightbend Inc. 3 | // 4 | addSbtPlugin("com.typesafe.play" % "sbt-plugin" % sys.props("project.version")) 5 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/source-mapping/project/plugins.sbt: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2009-2016 Lightbend Inc. 3 | // 4 | addSbtPlugin("com.typesafe.play" % "sbt-plugin" % sys.props("project.version")) 5 | -------------------------------------------------------------------------------- /documentation/manual/gettingStarted/index.toc: -------------------------------------------------------------------------------- 1 | Installing:Installing Play 2 | NewApplication:Creating a new application 3 | PlayConsole:Using the Play console 4 | IDE:Setting-up your preferred IDE 5 | Anatomy:Anatomy of a Play application 6 | Tutorials:Play Tutorials 7 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/assets/code/Assets.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package common.assets 5 | 6 | package object controllers { 7 | type Assets = _root_.controllers.Assets 8 | } 9 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/json/index.toc: -------------------------------------------------------------------------------- 1 | ScalaJson:JSON basics 2 | ScalaJsonHttp:JSON with HTTP 3 | ScalaJsonCombinators:JSON Reads/Writes/Format Combinators 4 | ScalaJsonAutomated:JSON automated mapping 5 | ScalaJsonTransformers:JSON Transformers 6 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/upload/code/scalaguide.upload.fileupload.routes: -------------------------------------------------------------------------------- 1 | GET / controllers.Application.index() 2 | 3 | # #application-upload-routes 4 | POST / controllers.Application.upload() 5 | # #application-upload-routes 6 | -------------------------------------------------------------------------------- /framework/src/play-akka-http-server/src/sbt-test/akka-http/system-property/project/plugins.sbt: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2009-2016 Lightbend Inc. 3 | // 4 | 5 | addSbtPlugin("com.typesafe.play" % "sbt-plugin" % sys.props("project.version")) 6 | -------------------------------------------------------------------------------- /framework/src/play-java-ws/src/main/java/play/libs/ws/WSRequestExecutor.java: -------------------------------------------------------------------------------- 1 | package play.libs.ws; 2 | 3 | import java.util.concurrent.CompletionStage; 4 | 5 | public interface WSRequestExecutor { 6 | CompletionStage apply(WSRequest request); 7 | } 8 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/build/code/common.build.routes: -------------------------------------------------------------------------------- 1 | #assets-routes 2 | GET /index controllers.admin.HomeController.index() 3 | 4 | GET /assets/*file controllers.Assets.at(path="/public/lib/myadmin", file) 5 | #assets-routes 6 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/index.toc: -------------------------------------------------------------------------------- 1 | !build:The build system 2 | !configuration:Configuration 3 | !assets:Static assets 4 | !filters:Built-in HTTP filters 5 | !Modules:Extending Play with modules 6 | !database:Databases 7 | !production:Deploying your application -------------------------------------------------------------------------------- /framework/src/play-akka-http-server/src/sbt-test/akka-http/play-akka-http-plugin/project/plugins.sbt: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2009-2016 Lightbend Inc. 3 | // 4 | 5 | addSbtPlugin("com.typesafe.play" % "sbt-plugin" % sys.props("project.version")) 6 | -------------------------------------------------------------------------------- /framework/src/play-akka-http-server/src/sbt-test/akka-http/play-akka-http-plugin/test: -------------------------------------------------------------------------------- 1 | # Start dev mode 2 | > run 3 | > verifyResourceContains / 200 akka-http 4 | > playStop 5 | 6 | # Check tests work an explicit ServerProvider 7 | > test 8 | 9 | # TODO: Test dist main class -------------------------------------------------------------------------------- /framework/src/play-filters-helpers/src/test/resources/application-logger.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /framework/src/play-java-forms/src/main/java/play/data/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | 5 | /** 6 | * Provides data manipulation helpers, mainly for HTTP form handling. 7 | */ 8 | package play.data; 9 | -------------------------------------------------------------------------------- /framework/src/play-java-forms/src/main/java/play/data/validation/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | 5 | /** 6 | * Provides the JSR 303 validation constraints. 7 | */ 8 | package play.data.validation; 9 | -------------------------------------------------------------------------------- /framework/src/play-java/src/main/java/play/libs/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | 5 | /** 6 | * Provides various APIs that are useful for developing web applications. 7 | */ 8 | package play.libs; 9 | -------------------------------------------------------------------------------- /framework/src/play-ws/src/main/scala/play/api/libs/oauth/package.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.api.libs 5 | 6 | /** 7 | * OAuth integration helpers. 8 | */ 9 | package object oauth 10 | -------------------------------------------------------------------------------- /framework/src/play/src/test/resources/messages: -------------------------------------------------------------------------------- 1 | error.custom=This is a {0} 2 | error.customarg=custom error 3 | 4 | constraint.custom=I am a {0} 5 | constraint.customarg=custom constraint 6 | 7 | format.custom=Look at me! I am a {0} 8 | format.customarg=custom format pattern -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/aggregate-reverse-routes/project/plugins.sbt: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2009-2016 Lightbend Inc. 3 | // 4 | addSbtPlugin("com.typesafe.play" % "sbt-plugin" % sys.props("project.version")) 5 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/incremental-compilation/project/plugins.sbt: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2009-2016 Lightbend Inc. 3 | // 4 | addSbtPlugin("com.typesafe.play" % "sbt-plugin" % sys.props("project.version")) 5 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/advanced/JavaAdvanced.md: -------------------------------------------------------------------------------- 1 | 2 | # Advanced topics for Java 3 | 4 | This section describes advanced techniques for writing Play applications in Java. 5 | 6 | @toc@ 7 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/http/code/javaguide.http.routing.query.routes: -------------------------------------------------------------------------------- 1 | # #page 2 | # Extract the page parameter from the query string. 3 | # i.e. http://myserver.com/?page=index 4 | GET / controllers.Application.show(page) 5 | # #page 6 | -------------------------------------------------------------------------------- /framework/src/play-guice/src/test/resources/messages: -------------------------------------------------------------------------------- 1 | error.custom=This is a {0} 2 | error.customarg=custom error 3 | 4 | constraint.custom=I am a {0} 5 | constraint.customarg=custom constraint 6 | 7 | format.custom=Look at me! I am a {0} 8 | format.customarg=custom format pattern -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/advanced/ScalaAdvanced.md: -------------------------------------------------------------------------------- 1 | 2 | # Advanced topics for Scala 3 | 4 | This section describes advanced techniques for writing Play applications in Scala. 5 | 6 | @toc@ 7 | -------------------------------------------------------------------------------- /framework/src/play-java-forms/src/main/java/play/data/format/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | 5 | /** 6 | * Provides the formatting API used by Form classes. 7 | */ 8 | package play.data.format; 9 | -------------------------------------------------------------------------------- /framework/src/play-jdbc-evolutions/src/test/resources/evolutions/test/2.sql: -------------------------------------------------------------------------------- 1 | # --- Test data set 2 | 3 | # --- !Ups 4 | 5 | insert into test (id, name) values (1, 'alice'); 6 | insert into test (id, name) values (2, 'bob'); 7 | 8 | # --- !Downs 9 | 10 | delete from test; 11 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/distribution-without-documentation/project/plugins.sbt: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2009-2016 Lightbend Inc. 3 | // 4 | 5 | addSbtPlugin("com.typesafe.play" % "sbt-plugin" % sys.props("project.version")) 6 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/assets/index.toc: -------------------------------------------------------------------------------- 1 | Assets:Static assets 2 | AssetsOverview:Working with public assets 3 | AssetsCoffeeScript:Using CoffeeScript 4 | AssetsLess:Using LESS CSS 5 | AssetsSass:Using Sass 6 | AssetsJSHint:Using JSHint 7 | RequireJS-support:Using RequireJs -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/tests/index.toc: -------------------------------------------------------------------------------- 1 | JavaTest:Writing tests 2 | JavaFunctionalTest:Writing functional tests 3 | JavaTestingWithGuice:Testing with Guice 4 | JavaTestingWithDatabases:Testing with databases 5 | JavaTestingWebServiceClients:Testing web service clients 6 | -------------------------------------------------------------------------------- /framework/src/routes-compiler/src/test/resources/duplicateHandlers.routes: -------------------------------------------------------------------------------- 1 | GET /foo controllers.FooController.foo(bar: Boolean = false) 2 | GET /foo2 controllers.FooController.foo(bar: Boolean = false, baz: Boolean = true) 3 | GET /bar controllers.BarController.bar(baz) 4 | -------------------------------------------------------------------------------- /documentation/manual/index.toc: -------------------------------------------------------------------------------- 1 | Home:Home 2 | LatestRelease:Latest release 3 | gettingStarted:Getting started 4 | working:Working with Play 5 | hacking:Contributing to Play 6 | experimental:Experimental libraries 7 | about:About Play 8 | releases:Play releases 9 | ModuleDirectory:Module directory -------------------------------------------------------------------------------- /documentation/manual/hacking/index.toc: -------------------------------------------------------------------------------- 1 | BuildingFromSource:Building Play from source 2 | Repositories:Repositories 3 | Issues:Issue tracker 4 | Documentation:Documentation guidelines 5 | Translations:Translating documentation 6 | WorkingWithGit:Working with git 7 | ThirdPartyTools:3rd party tools 8 | -------------------------------------------------------------------------------- /framework/src/play-integration-test/src/test/resources/application.conf: -------------------------------------------------------------------------------- 1 | # Play sometimes gets grumpy if this file doesn't exist. 2 | play.crypto.secret = "abc" 3 | 4 | actor { 5 | default-dispatcher = { 6 | fork-join-executor { 7 | parallelism-max = 2 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /framework/src/play-java-jpa/src/test/resources/evolutions/default/1.sql: -------------------------------------------------------------------------------- 1 | # --- Create database schema 2 | 3 | # --- !Ups 4 | 5 | create table TestEntity ( 6 | id bigint not null, 7 | name varchar(255)) 8 | ; 9 | 10 | # --- !Downs 11 | 12 | drop table if exists TestEntity; 13 | -------------------------------------------------------------------------------- /framework/src/play/src/main/scala/views/defaultpages/package.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package views.html 5 | 6 | /** 7 | * Contains default error, 404, forbidden, etc. pages. 8 | */ 9 | package object defaultpages 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | logs 2 | target 3 | .idea 4 | .idea_modules 5 | .classpath 6 | .project 7 | .settings 8 | RUNNING_PID 9 | generated.keystore 10 | generated.truststore 11 | *.log 12 | 13 | # Scala-IDE specific 14 | .scala_dependencies 15 | .project 16 | .settings 17 | .cache-main 18 | .cache-tests 19 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/production/cloud/index.toc: -------------------------------------------------------------------------------- 1 | DeployingCloud:Deploying to a cloud service 2 | ProductionHeroku:Deploying to Heroku 3 | Deploying-CloudFoundry:Deploying to Cloud Foundry 4 | Deploying-CleverCloud:Deploying to Clever Cloud 5 | Deploying-Boxfuse:Deploying to Boxfuse and AWS -------------------------------------------------------------------------------- /framework/src/play-java-ws/src/main/java/play/libs/ws/WSSignatureCalculator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.libs.ws; 5 | 6 | /** 7 | * Sign a WS call. 8 | */ 9 | public interface WSSignatureCalculator { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /framework/src/play/src/main/scala/play/api/libs/package.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.api 5 | 6 | /** 7 | * Contains various APIs that are useful while developing web applications. 8 | */ 9 | package object libs 10 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/forms/code/javaguide/forms/withFieldConstructor.scala.html: -------------------------------------------------------------------------------- 1 | @(myForm: Form[User]) 2 | 3 | @import helper._ 4 | 5 | @* #field *@ 6 | @implicitField = @{ FieldConstructor(myFieldConstructorTemplate.f) } 7 | 8 | @inputText(myForm("email")) 9 | @* #field *@ 10 | -------------------------------------------------------------------------------- /framework/src/run-support/src/main/scala/play/runsupport/ServerStartException.scala: -------------------------------------------------------------------------------- 1 | package play.runsupport 2 | 3 | import sbt.FeedbackProvidedException 4 | 5 | class ServerStartException(underlying: Throwable) extends FeedbackProvidedException { 6 | override def getMessage = underlying.getMessage 7 | } 8 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/i18n/code/scalaguide/i18n/messages: -------------------------------------------------------------------------------- 1 | #apostrophe-messages 2 | info.error=You aren''t logged in! 3 | #apostrophe-messages 4 | 5 | #parameter-escaping 6 | example.formatting=When using MessageFormat, '''{0}''' is replaced with the first parameter. 7 | #parameter-escaping 8 | -------------------------------------------------------------------------------- /framework/src/play-java-ws/src/main/java/play/libs/ws/WSAPI.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.libs.ws; 5 | 6 | 7 | public interface WSAPI { 8 | 9 | WSClient client(); 10 | 11 | WSRequest url(String url); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/production/index.toc: -------------------------------------------------------------------------------- 1 | Production:Using Play in production 2 | Deploying:Deploying your application 3 | ProductionConfiguration:Production configuration 4 | HTTPServer:Setting up a front end HTTP server 5 | ConfiguringHttps:Configuring HTTPS 6 | !cloud:Deploying to a cloud service -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/tests/code/tests/guice/Component.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.tests.guice; 5 | 6 | // #component 7 | public interface Component { 8 | String hello(); 9 | } 10 | // #component 11 | -------------------------------------------------------------------------------- /framework/src/run-support/src/main/java/play/runsupport/classloader/ApplicationClassLoaderProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.runsupport.classloader; 5 | 6 | public interface ApplicationClassLoaderProvider { 7 | ClassLoader get(); 8 | } 9 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/akka/code/javaguide/akka/ConfiguredActorProtocol.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.akka; 5 | 6 | public class ConfiguredActorProtocol { 7 | 8 | public static class GetConfig {} 9 | } 10 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/forms/code/javaguide/forms/html/routes/package.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.forms.html 5 | 6 | package object routes { 7 | val Application = javaguide.forms.controllers.routes.Application 8 | } 9 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/http/code/javaguide.http.routing.fixed.routes: -------------------------------------------------------------------------------- 1 | # #page 2 | # Extract the page parameter from the path, or fix the value for / 3 | GET / controllers.Application.show(page = "home") 4 | GET /:page controllers.Application.show(page) 5 | # #page 6 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/i18n/code/javaguide/i18n/messages: -------------------------------------------------------------------------------- 1 | #single-apostrophe 2 | info.error=You aren''t logged in! 3 | #single-apostrophe 4 | 5 | #parameter-escaping 6 | example.formatting=When using MessageFormat, '''{0}''' is replaced with the first parameter. 7 | #parameter-escaping 8 | 9 | hello=hello -------------------------------------------------------------------------------- /framework/src/play-cache/src/main/scala/play/api/cache/package.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.api 5 | 6 | /** 7 | * Contains the Cache access API. 8 | */ 9 | package object cache { 10 | type NamedCache = play.cache.NamedCache 11 | } 12 | -------------------------------------------------------------------------------- /framework/src/play-jdbc-evolutions/src/test/resources/evolutionstest/evolutions/default/1.sql: -------------------------------------------------------------------------------- 1 | # --- Test database schema 2 | 3 | # --- !Ups 4 | 5 | create table test (id bigint not null, name varchar(255)); 6 | insert into test values (10, 'testing'); 7 | 8 | # --- !Downs 9 | 10 | drop table if exists test; 11 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/dev-mode/project/plugins.sbt: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2009-2016 Lightbend Inc. 3 | // 4 | 5 | addSbtPlugin("com.typesafe.play" % "sbt-plugin" % sys.props("project.version")) 6 | 7 | addSbtPlugin("com.typesafe.sbt" % "sbt-less" % "1.0.0") 8 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/distribution/project/plugins.sbt: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2009-2016 Lightbend Inc. 3 | // 4 | 5 | addSbtPlugin("com.typesafe.play" % "sbt-plugin" % sys.props("project.version")) 6 | 7 | addSbtPlugin("com.typesafe.sbt" % "sbt-less" % "1.0.0") 8 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/http/code/scalaguide.http.routing.fixed.routes: -------------------------------------------------------------------------------- 1 | # #page 2 | # Extract the page parameter from the path, or fix the value for / 3 | GET / controllers.Application.show(page = "home") 4 | GET /:page controllers.Application.show(page) 5 | # #page 6 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/source-mapping/Application.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package controllers 5 | 6 | import play.api.mvc._ 7 | 8 | class Application extends Controller { 9 | def index = Action(Ok) 10 | } 11 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/advanced/extending/code/javaguide/advanced/extending/MyApi.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.advanced.extending; 5 | 6 | // #module-class-api 7 | public class MyApi { 8 | 9 | } 10 | // #module-class-api 11 | -------------------------------------------------------------------------------- /framework/src/play-java-ws/src/main/java/play/libs/ws/WSAuthScheme.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.libs.ws; 5 | 6 | public enum WSAuthScheme { 7 | DIGEST, 8 | BASIC, 9 | NTLM, 10 | SPNEGO, 11 | KERBEROS, 12 | NONE 13 | } 14 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/multiproject-assets/project/plugins.sbt: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2009-2016 Lightbend Inc. 3 | // 4 | 5 | addSbtPlugin("com.typesafe.play" % "sbt-plugin" % sys.props("project.version")) 6 | 7 | addSbtPlugin("com.typesafe.sbt" % "sbt-less" % "1.0.0") 8 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/routes-compilation/project/plugins.sbt: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2009-2016 Lightbend Inc. 3 | // 4 | 5 | addSbtPlugin("com.typesafe.play" % "sbt-plugin" % sys.props("project.version")) 6 | addSbtPlugin("com.typesafe.sbt" % "sbt-mocha" % "1.1.0") 7 | -------------------------------------------------------------------------------- /documentation/manual/releases/Releases.md: -------------------------------------------------------------------------------- 1 | 2 | # About Play releases 3 | 4 | You can download Play releases [here](https://www.playframework.com/download). Each release has a Migration Guide that explains how to upgrade from the previous release. 5 | 6 | @toc@ 7 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/forms/code/scalaguide/forms/scalafieldconstructor/userImport.scala.html: -------------------------------------------------------------------------------- 1 | @(myForm: Form[User])(implicit messages: Messages) 2 | 3 | @* #import-myhelper *@ 4 | @import MyHelpers._ 5 | @* #import-myhelper *@ 6 | 7 | @* #form *@ 8 | @helper.inputText(myForm("username")) 9 | @* #form *@ 10 | -------------------------------------------------------------------------------- /framework/src/play/src/main/scala/play/utils/Conversions.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.utils 5 | 6 | /** 7 | * provides conversion helpers 8 | */ 9 | object Conversions { 10 | 11 | def newMap[A, B](data: (A, B)*) = Map(data: _*) 12 | 13 | } 14 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/source-mapping/routes: -------------------------------------------------------------------------------- 1 | # A valid route 2 | GET / controllers.Application.index 3 | 4 | # This won't compile on line 5 5 | GET /foo controllers.Application.foo 6 | 7 | # A valid route 8 | GET /assets/*file controllers.Assets.at(path = "/public", file) 9 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/forms/code/javaguide/forms/fullform.scala.html: -------------------------------------------------------------------------------- 1 | @* #full-form *@ 2 | @(myForm: Form[User]) 3 | 4 | @helper.form(action = routes.Application.submit()) { 5 | 6 | @helper.inputText(myForm("email")) 7 | 8 | @helper.inputPassword(myForm("password")) 9 | 10 | } 11 | @* #full-form *@ 12 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/injected-routes-compilation/project/plugins.sbt: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2009-2016 Lightbend Inc. 3 | // 4 | 5 | addSbtPlugin("com.typesafe.play" % "sbt-plugin" % sys.props("project.version")) 6 | addSbtPlugin("com.typesafe.sbt" % "sbt-mocha" % "1.1.0") 7 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/forms/code/javaguide/forms/controllers/Application.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.forms.controllers 5 | 6 | import play.api.mvc._ 7 | 8 | class Application extends Controller { 9 | def submit = Action(Ok) 10 | } 11 | -------------------------------------------------------------------------------- /framework/src/play/src/main/scala/play/core/system/RequestIdProvider.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.core.system 5 | 6 | import java.util.concurrent.atomic.AtomicLong 7 | 8 | private[play] object RequestIdProvider { 9 | val requestIDs: AtomicLong = new AtomicLong(0) 10 | } 11 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/dev-mode/app/controllers/Application.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package controllers 5 | 6 | import play.api.mvc._ 7 | 8 | class Application extends Controller { 9 | def index = Action { 10 | Ok("original") 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/configuration/code/Configuration.scala: -------------------------------------------------------------------------------- 1 | // With Play Scala 2 | 3 | object DependencyInjection { 4 | //#dependency-injection 5 | import javax.inject._ 6 | import play.api.Configuration 7 | 8 | class MyController @Inject() (config: Configuration) { 9 | // ... 10 | } 11 | //#dependency-injection 12 | } 13 | -------------------------------------------------------------------------------- /framework/src/play/src/main/java/play/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | 5 | /** 6 | * Provides the Play framework's publicly accessible Java API. 7 | * 8 | *

Play

9 | * http://www.playframework.com 10 | */ 11 | package play; 12 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/tests/code/models/User.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package scalaguide.tests 5 | 6 | package models 7 | 8 | // #scalatest-models 9 | case class Role(name:String) 10 | 11 | case class User(id: String, name: String, email:String) 12 | // #scalatest-models 13 | -------------------------------------------------------------------------------- /framework/src/play/src/main/scala/models/DummyPlaceHolder.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package models 5 | 6 | /* 7 | * Empty placeholder object to make sure templates keep compiling (due to 8 | * imports in template files), even if projects don't have any models. 9 | */ 10 | object DummyPlaceHolder 11 | -------------------------------------------------------------------------------- /framework/src/play/src/test/scala/play/data/MyUser.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.data; 5 | 6 | public class MyUser { 7 | public String email; 8 | public String password; 9 | public String extraField1; 10 | public String extraField2; 11 | public String extraField3; 12 | } 13 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/advanced/routing/code/javaEmbeddedRouter.scala.html: -------------------------------------------------------------------------------- 1 | @* #javascript-embedded-router *@ 2 | @() 3 | 4 | @* ###skip: 2 *@ 5 | @import javaguide.binder.controllers.routes 6 | 7 | @helper.javascriptRouter("jsRoutes")( 8 | routes.javascript.Users.list, 9 | routes.javascript.Users.get 10 | ) 11 | @* #javascript-embedded-router *@ 12 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/http/index.toc: -------------------------------------------------------------------------------- 1 | ScalaActions:Actions, Controllers and Results 2 | ScalaRouting:HTTP Routing 3 | ScalaResults:Manipulating results 4 | ScalaSessionFlash:Session and Flash scopes 5 | ScalaBodyParsers:Body parsers 6 | ScalaActionsComposition:Actions composition 7 | ScalaContentNegotiation:Content negotiation 8 | ScalaErrorHandling:Handling errors -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/dependencyinjection/code/scalaguide.dependencyinjection.routes: -------------------------------------------------------------------------------- 1 | #content 2 | GET / controllers.Application.index 3 | GET /foo controllers.Application.foo 4 | -> /bar bar.Routes 5 | GET /assets/*file controllers.Assets.at(path = "/public", file) 6 | #content 7 | -------------------------------------------------------------------------------- /framework/src/play-java-forms/src/test/java/play/data/MyUser.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.data; 5 | 6 | public class MyUser { 7 | public String email; 8 | public String password; 9 | public String extraField1; 10 | public String extraField2; 11 | public String extraField3; 12 | } 13 | -------------------------------------------------------------------------------- /framework/src/play/src/main/scala/play/api/http/Port.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.api.http 5 | 6 | /** 7 | * A port. This class is defined so that ports can be passed around implicitly. 8 | */ 9 | class Port(val value: Int) extends AnyVal { 10 | override def toString = value.toString 11 | } 12 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/dependencyinjection/code/javaguide/di/GermanHello.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.di; 5 | 6 | public class GermanHello implements Hello { 7 | @Override 8 | public String sayHello(String name) { 9 | return "Hallo " + name; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/tests/code/tests/guice/MockComponent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.tests.guice; 5 | 6 | // #mock-component 7 | public class MockComponent implements Component { 8 | public String hello() { 9 | return "mock"; 10 | } 11 | } 12 | // #mock-component 13 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/forms/code/scalaguide/forms/scalafieldconstructor/userDeclare.scala.html: -------------------------------------------------------------------------------- 1 | @(myForm: Form[User])(implicit messages: Messages) 2 | 3 | @* #declare-implicit *@ 4 | @implicitField = @{ helper.FieldConstructor(myFieldConstructorTemplate.f) } 5 | @* #declare-implicit *@ 6 | 7 | @* #form *@ 8 | @helper.inputText(myForm("username")) 9 | @* #form *@ 10 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/secret/conf/application.conf: -------------------------------------------------------------------------------- 1 | # This is the main configuration file for the application. 2 | # ~~~~~ 3 | 4 | # Secret key 5 | # ~~~~~ 6 | # The secret key is used to secure cryptographics functions. 7 | # If you deploy your application to several instances be sure to use the same key! 8 | play.crypto.secret="changeme" 9 | 10 | # foo 11 | -------------------------------------------------------------------------------- /documentation/manual/LatestRelease.md: -------------------------------------------------------------------------------- 1 | 2 | # Latest release 3 | 4 | Learn more about the latest Play release. You can download Play releases [here](https://www.playframework.com/download). 5 | 6 | - [[What's new in Play 2.6?|Highlights26]] 7 | - [[Play 2.6 Migration Guide|Migration26]] 8 | - [[Other Play releases|Releases]] 9 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/advanced/extending/JavaPlugins.md: -------------------------------------------------------------------------------- 1 | 2 | # Writing Plugins 3 | 4 | > **Note:** The `play.Plugin` API was deprecated in 2.4.x and is removed as of 2.5.x. 5 | > 6 | > Please use [[Play Modules|JavaPlayModules]], and see the [[Plugins to Modules|PluginsToModules]] page for migration details. 7 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/dependencyinjection/code/javaguide/di/controllers/Application.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.di.controllers; 5 | 6 | import play.mvc.*; 7 | 8 | public class Application extends Controller { 9 | public Result index() { 10 | return ok(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /framework/src/play-server/src/main/scala/play/core/server/common/ConnectionInfo.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.core.server.common 5 | 6 | import java.net.InetAddress 7 | 8 | /** 9 | * Basic information about an HTTP connection. 10 | */ 11 | final case class ConnectionInfo(address: InetAddress, secure: Boolean) 12 | -------------------------------------------------------------------------------- /framework/src/play/src/main/scala/play/api/i18n/package.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.api 5 | 6 | /** 7 | * Contains the internationalisation API. 8 | * 9 | * For example, translating a message: 10 | * {{{ 11 | * val msgString = Messages("items.found", items.size) 12 | * }}} 13 | */ 14 | package object i18n 15 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/build/code/build.sbt: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2009-2016 Lightbend Inc. 3 | // 4 | 5 | //#default 6 | name := "foo" 7 | 8 | version := "1.0-SNAPSHOT" 9 | 10 | libraryDependencies ++= Seq( 11 | jdbc, 12 | anorm, 13 | cache 14 | ) 15 | 16 | lazy val root = (project in file(".")).enablePlugins(PlayScala) 17 | //#default 18 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/configuration/index.toc: -------------------------------------------------------------------------------- 1 | Configuration:Configuration 2 | ConfigFile:Configuration file syntax and features 3 | ApplicationSecret:Configuring the application secret 4 | SettingsJDBC:Configuring the JDBC connection pool 5 | SettingsNetty:Configuring Netty server 6 | ThreadPools:Configuring Play's thread pools 7 | SettingsLogger:Configuring logging 8 | !ws:Configuring WS SSL -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/dependencyinjection/code/javaguide/di/field/MyComponent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.di.field; 5 | 6 | //#field 7 | import javax.inject.*; 8 | import play.libs.ws.*; 9 | 10 | public class MyComponent { 11 | @Inject WSClient ws; 12 | 13 | // ... 14 | } 15 | //#field 16 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/http/index.toc: -------------------------------------------------------------------------------- 1 | JavaActions:Actions, Controllers and Results 2 | JavaRouting:HTTP routing 3 | JavaResponse:Manipulating the HTTP response 4 | JavaSessionFlash:Session and Flash scopes 5 | JavaBodyParsers:Body parsers 6 | JavaActionsComposition:Actions composition 7 | JavaActionCreator:HTTP Request Handlers / ActionCreator 8 | JavaContentNegotiation:Content negotiation 9 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/tests/code/tests/guice/DefaultComponent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.tests.guice; 5 | 6 | // #default-component 7 | public class DefaultComponent implements Component { 8 | public String hello() { 9 | return "default"; 10 | } 11 | } 12 | // #default-component 13 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/advanced/extending/ScalaPlugins.md: -------------------------------------------------------------------------------- 1 | 2 | # Writing Plugins 3 | 4 | > **Note:** The `play.api.Plugin` API was deprecated in 2.4.x and is removed as of 2.5.x. 5 | > 6 | > Please use [[Play Modules|ScalaPlayModules]], and see the [[Plugins to Modules|PluginsToModules]] page for migration details. 7 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/tests/code/controllers/HomeController.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package scalaguide.tests 5 | 6 | package controllers 7 | 8 | import play.api.mvc._ 9 | 10 | class HomeController extends Controller { 11 | def index() = Action { 12 | Ok("Hello Bob") as("text/plain") 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/tests/code/services/UserRepository.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package scalaguide.tests 5 | 6 | package services 7 | 8 | import models._ 9 | 10 | // #scalatest-repository 11 | trait UserRepository { 12 | def roles(user:User) : Set[Role] 13 | } 14 | // #scalatest-repository 15 | 16 | 17 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/forms/code/javaguide/forms/csrf.scala.html: -------------------------------------------------------------------------------- 1 | 2 | @* #csrf-call *@ 3 | @import helper._ 4 | 5 | @form(CSRF(scalaguide.forms.csrf.routes.ItemsController.save())) { 6 | ... 7 | } 8 | @* #csrf-call *@ 9 | 10 | @* #csrf-input *@ 11 | @form(scalaguide.forms.csrf.routes.ItemsController.save()) { 12 | @CSRF.formField 13 | ... 14 | } 15 | @* #csrf-input *@ 16 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/production/code/assembly.sbt: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2009-2016 Lightbend Inc. 3 | // 4 | 5 | //#assembly 6 | import AssemblyKeys._ 7 | 8 | assemblySettings 9 | 10 | mainClass in assembly := Some("play.core.server.ProdServerStart") 11 | 12 | fullClasspath in assembly += Attributed.blank(PlayKeys.playPackageAssets.value) 13 | //#assembly 14 | -------------------------------------------------------------------------------- /framework/src/play/src/main/java/play/server/SSLEngineProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.server; 5 | 6 | import javax.net.ssl.SSLEngine; 7 | 8 | public interface SSLEngineProvider { 9 | 10 | /** 11 | * @return the SSL engine to be used for HTTPS connection. 12 | */ 13 | SSLEngine createSSLEngine(); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/dependencyinjection/code/javaguide/di/EnglishHello.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.di; 5 | 6 | //#implemented-by 7 | public class EnglishHello implements Hello { 8 | 9 | public String sayHello(String name) { 10 | return "Hello " + name; 11 | } 12 | } 13 | //#implemented-by 14 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/advanced/routing/code/scalaEmbeddedRouter.scala.html: -------------------------------------------------------------------------------- 1 | @* #javascript-embedded-router *@ 2 | @()(implicit req: play.api.mvc.RequestHeader) 3 | 4 | @* ###skip: 2 *@ 5 | @import scalaguide.binder.controllers.routes 6 | 7 | @helper.javascriptRouter("jsRoutes")( 8 | routes.javascript.Users.list, 9 | routes.javascript.Users.get 10 | ) 11 | @* #javascript-embedded-router *@ 12 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/dev-mode/changes/Application.scala.2: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package controllers 5 | 6 | import play.api.mvc._ 7 | import javax.inject.Inject 8 | 9 | class Application @Inject()(c: ControllerComponents) extends AbstractController(c) { 10 | def index = Action { 11 | Ok("first) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/dependencyinjection/code/javaguide/di/Hello.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.di; 5 | 6 | //#implemented-by 7 | import com.google.inject.ImplementedBy; 8 | 9 | @ImplementedBy(EnglishHello.class) 10 | public interface Hello { 11 | 12 | String sayHello(String name); 13 | } 14 | //#implemented-by 15 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/dev-mode/changes/Application.scala.1: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package controllers 5 | 6 | import play.api.mvc._ 7 | import javax.inject.Inject 8 | 9 | class Application @Inject()(c: ControllerComponents) extends AbstractController(c) { 10 | def index = Action { 11 | Ok("first") 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/dev-mode/changes/Application.scala.3: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package controllers 5 | 6 | import play.api.mvc._ 7 | import javax.inject.Inject 8 | 9 | class Application @Inject()(c: ControllerComponents) extends AbstractController(c) { 10 | def index = Action { 11 | Ok("second") 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /framework/src/play-server/src/main/scala/play/core/server/ServerListenException.scala: -------------------------------------------------------------------------------- 1 | package play.core.server 2 | 3 | import java.net.SocketAddress 4 | 5 | /** 6 | * This exception is thrown when the server is unable to listen on a port 7 | */ 8 | class ServerListenException(protocol: String, address: SocketAddress) extends Exception { 9 | override def getMessage = s"Failed to listen for $protocol on $address!" 10 | } 11 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/sql/code/ScalaInjectNamed.scala: -------------------------------------------------------------------------------- 1 | package scalaguide.sql 2 | 3 | import javax.inject.Inject 4 | import play.api.db.{ Database, NamedDatabase } 5 | import play.api.mvc.Controller 6 | 7 | // inject "orders" database instead of "default" 8 | class ScalaInjectNamed @Inject()( 9 | @NamedDatabase("orders") db: Database) extends Controller { 10 | // do whatever you need with the db 11 | } 12 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/nested-secret/conf/application.conf: -------------------------------------------------------------------------------- 1 | # This is the main configuration file for the application. 2 | # ~~~~~ 3 | 4 | # Secret key 5 | # ~~~~~ 6 | # The secret key is used to secure cryptographics functions. 7 | # If you deploy your application to several instances be sure to use the same key! 8 | play { 9 | crypto { 10 | secret = "changeme" 11 | } 12 | } 13 | 14 | # foo 15 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/routes-compilation/app/controllers/πø$7ß.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package controllers 5 | 6 | import play.api.mvc._ 7 | import javax.inject.Inject 8 | 9 | class πø$7ß @Inject() (c: ControllerComponents) extends AbstractController(c) { 10 | def ôü65$t(i: Int) = Action { 11 | Ok 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /framework/src/play-cache/src/main/java/play/cache/NamedCache.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.cache; 5 | 6 | import javax.inject.Qualifier; 7 | import java.lang.annotation.Retention; 8 | import java.lang.annotation.RetentionPolicy; 9 | 10 | @Qualifier 11 | @Retention(RetentionPolicy.RUNTIME) 12 | public @interface NamedCache { 13 | String value(); 14 | } 15 | -------------------------------------------------------------------------------- /framework/src/play-jdbc-api/src/main/java/play/db/NamedDatabase.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.db; 5 | 6 | import javax.inject.Qualifier; 7 | import java.lang.annotation.Retention; 8 | import java.lang.annotation.RetentionPolicy; 9 | 10 | @Qualifier 11 | @Retention(RetentionPolicy.RUNTIME) 12 | public @interface NamedDatabase { 13 | String value(); 14 | } 15 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/upload/code/scalaguide/templates/views/uploadForm.scala.html: -------------------------------------------------------------------------------- 1 | @import scalaguide.upload.fileupload.controllers._ 2 | @* #file-upload-form *@ 3 | @helper.form(action = routes.Application.upload, 'enctype -> "multipart/form-data") { 4 | 5 | 6 | 7 |

8 | 9 |

10 | 11 | } 12 | @* #file-upload-form *@ 13 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/injected-routes-compilation/app/controllers/πø$7ß.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package controllers 5 | 6 | import play.api.mvc._ 7 | import javax.inject.Inject 8 | 9 | class πø$7ß @Inject() (c: ControllerComponents) extends AbstractController(c) { 10 | def ôü65$t(i: Int) = Action { 11 | Ok 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/akka/code/javaguide/akka/ParentActorProtocol.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.akka; 5 | 6 | public class ParentActorProtocol { 7 | 8 | public static class GetChild { 9 | public final String key; 10 | 11 | public GetChild(String key) { 12 | this.key = key; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/http/code/javaguide/http/routing/controllers/Items.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.http.routing.controllers; 5 | 6 | import play.mvc.Controller; 7 | import play.mvc.Result; 8 | 9 | public class Items extends Controller { 10 | public Result show(Long id) { 11 | return ok("showing item " + id); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/tests/code/javaguide/tests/controllers/HomeController.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.tests.controllers; 5 | 6 | import play.mvc.*; 7 | 8 | public class HomeController extends Controller { 9 | 10 | public Result index() { 11 | return ok(javaguide.tests.html.index.render("Welcome to Play!")); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /framework/bin/testDocumentation: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | # Copyright (C) 2009-2016 Lightbend Inc. 4 | 5 | . "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/build" 6 | 7 | echo "[info]" 8 | echo "[info] ---- RUNNING DOCUMENTATION TESTS" 9 | echo "[info]" 10 | 11 | cd $DOCUMENTATION 12 | build "$@" clean test evaluateSbtFiles validateDocs 13 | 14 | echo "[info]" 15 | echo "[info] ALL TESTS PASSED" 16 | echo "[info]" 17 | -------------------------------------------------------------------------------- /framework/src/routes-compiler/src/test/resources/generating.routes: -------------------------------------------------------------------------------- 1 | GET /foo controllers.FooController.foo(bar: Boolean = false) 2 | GET /foo/lotsOfParams controller.FooController.lotsOfParams(a: Int, b: Int, c: Int, d: Int, e: Int, f: Int, g: Int, h: Int, i: Int, j: Int, k: String, l: String, m: String, n: String, o: String, p: String, q: Option[Int], r: Option[Int], s: Option[Int], t: Option[Int], u: Option[String], v: Float, w: Float, x: Int) 3 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/routes-compilation/app/controllers/InstanceController.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package controllers 5 | 6 | import play.api.mvc._ 7 | import javax.inject.Inject 8 | 9 | class InstanceController @Inject() (c: ControllerComponents) extends AbstractController(c) { 10 | def index = Action { 11 | Ok 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/build/index.toc: -------------------------------------------------------------------------------- 1 | Build:Contents 2 | BuildOverview:Overview of the build system 3 | SBTSettings:About sbt settings 4 | SBTDependencies:Manage application dependencies 5 | SBTSubProjects:Working with sub-projects 6 | PlayEnhancer:Play enhancer 7 | AggregatingReverseRouters:Aggregating reverse routers 8 | CompilationSpeed:Improving Compilation Times 9 | SBTCookbook:Cookbook 10 | SBTDebugging:Debugging your build 11 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/http/code/javaguide/http/routing/controllers/Api.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.http.routing.controllers; 5 | 6 | import play.mvc.Controller; 7 | import play.mvc.Result; 8 | 9 | public class Api extends Controller { 10 | public Result list(String version) { 11 | return ok("version " + version); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /framework/src/play-server/src/main/scala/play/core/server/ServerStartException.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.core.server 5 | 6 | /** 7 | * Indicates an issue with starting a server, e.g. a problem reading its 8 | * configuration. 9 | */ 10 | final case class ServerStartException(message: String, cause: Option[Throwable] = None) extends Exception(message, cause.orNull) 11 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/advanced/routing/code/router/RoutingDslBuilder.java: -------------------------------------------------------------------------------- 1 | package router; 2 | 3 | import play.routing.Router; 4 | import play.mvc.Controller; 5 | import play.routing.RoutingDsl; 6 | 7 | public class RoutingDslBuilder extends Controller{ 8 | 9 | public static Router getRouter() { 10 | return new RoutingDsl() 11 | .GET("/hello/:to").routeTo(to -> ok("Hello " + to)) 12 | .build(); 13 | } 14 | } 15 | 16 | -------------------------------------------------------------------------------- /framework/src/play-json/src/main/scala/play/api/libs/json/Util.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.api.libs.json.util 5 | 6 | import scala.language.higherKinds 7 | 8 | trait LazyHelper[M[_], T] { 9 | def lazyStuff: M[T] 10 | } 11 | 12 | object LazyHelper { 13 | def apply[M[_], T](stuff: M[T]) = new LazyHelper[M, T] { 14 | override lazy val lazyStuff = stuff 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/routes-compilation/app/controllers/module/ModuleController.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package controllers.module 5 | 6 | import play.api.mvc._ 7 | import javax.inject.Inject 8 | 9 | class ModuleController @Inject()(c: ControllerComponents) extends AbstractController(c) { 10 | def index = Action { 11 | Ok 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/filters/code/CorsFilter.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package detailedtopics.configuration.cors.sapi 5 | 6 | //#filters 7 | import javax.inject.Inject 8 | 9 | import play.api.http.DefaultHttpFilters 10 | import play.filters.cors.CORSFilter 11 | 12 | class Filters @Inject() (corsFilter: CORSFilter) 13 | extends DefaultHttpFilters(corsFilter) 14 | //#filters 15 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/forms/code/scalaguide/forms/csrf.scala.html: -------------------------------------------------------------------------------- 1 | @()(implicit request: play.api.mvc.RequestHeader) 2 | 3 | @import scalaguide.forms.csrf.routes 4 | 5 | @* #csrf-call *@ 6 | @import helper._ 7 | 8 | @form(CSRF(routes.ItemsController.save())) { 9 | ... 10 | } 11 | @* #csrf-call *@ 12 | 13 | @* #csrf-input *@ 14 | @form(routes.ItemsController.save()) { 15 | @CSRF.formField 16 | ... 17 | } 18 | @* #csrf-input *@ 19 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/play-position-mapper/test: -------------------------------------------------------------------------------- 1 | # Compile 2 | > compileIgnoreErrors 3 | 4 | # Check that the compile errors are successfully mapped from the generated Scala back to the original source 5 | > checkLogContains app/views/index.scala.html:3: not found: value foo 6 | > checkLogContains Foo: @foo.bar 7 | > checkLogContains conf/routes:3: type Foo is not a member of package controllers 8 | > checkLogContains GET / controllers.Foo.index -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/injected-routes-compilation/app/controllers/module/ModuleController.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package controllers.module 5 | 6 | import play.api.mvc._ 7 | import javax.inject.Inject 8 | 9 | class ModuleController @Inject() (c: ControllerComponents) extends AbstractController(c) { 10 | def index = Action { 11 | Ok 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /framework/src/play-jdbc/src/main/scala/play/api/db/package.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.api 5 | 6 | /** 7 | * Contains the JDBC database access API. 8 | * 9 | * Example, retrieving a connection from the 'customers' datasource: 10 | * {{{ 11 | * val conn = db.getConnection("customers") 12 | * }}} 13 | */ 14 | package object db { 15 | type NamedDatabase = play.db.NamedDatabase 16 | } 17 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/aggregate-reverse-routes/a/app/controllers/a/A.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package controllers.a 5 | 6 | import play.api.mvc._ 7 | 8 | class A extends Controller { 9 | 10 | def index = Action { 11 | controllers.a.routes.A.index 12 | controllers.b.routes.B.index 13 | controllers.c.routes.C.index 14 | Ok 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/aggregate-reverse-routes/b/app/controllers/b/B.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package controllers.b 5 | 6 | import play.api.mvc._ 7 | 8 | class B extends Controller { 9 | 10 | def index = Action { 11 | controllers.a.routes.A.index 12 | controllers.b.routes.B.index 13 | controllers.c.routes.C.index 14 | Ok 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/production/code/debian.sbt: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2009-2016 Lightbend Inc. 3 | // 4 | 5 | //#debian 6 | lazy val root = (project in file(".")) 7 | .enablePlugins(PlayScala, DebianPlugin) 8 | 9 | maintainer in Linux := "First Lastname " 10 | 11 | packageSummary in Linux := "My custom package summary" 12 | 13 | packageDescription := "My longer package description" 14 | //#debian 15 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/dependencyinjection/code/javaguide/di/MessageQueue.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.di; 5 | 6 | public class MessageQueue { 7 | public static boolean stopped = false; 8 | 9 | public static MessageQueue connect() { 10 | return new MessageQueue(); 11 | } 12 | 13 | public void stop() { 14 | stopped = true; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/sql/code/jpa.sbt: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2009-2016 Lightbend Inc. 3 | // 4 | 5 | //#jpa-sbt-dependencies 6 | libraryDependencies ++= Seq( 7 | javaJpa, 8 | "org.hibernate" % "hibernate-entitymanager" % "5.1.0.Final" // replace by your jpa implementation 9 | ) 10 | //#jpa-sbt-dependencies 11 | 12 | //#jpa-externalize-resources 13 | PlayKeys.externalizeResources := false 14 | //#jpa-externalize-resources 15 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/aggregate-reverse-routes/c/app/controllers/c/C.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package controllers.c 5 | 6 | import play.api.mvc._ 7 | 8 | class C extends Controller { 9 | 10 | def index = Action { 11 | controllers.a.routes.A.index() 12 | controllers.b.routes.B.index() 13 | controllers.c.routes.C.index() 14 | Ok 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/akka/code/javaguide/akka/ConfiguredChildActorProtocol.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.akka; 5 | 6 | //#protocol 7 | import akka.actor.Actor; 8 | 9 | public class ConfiguredChildActorProtocol { 10 | 11 | public static class GetConfig {} 12 | 13 | public interface Factory { 14 | public Actor create(String key); 15 | } 16 | } 17 | //#protocol 18 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/database/Databases.md: -------------------------------------------------------------------------------- 1 | 2 | # Databases 3 | 4 | This section covers a some topics related to working with databases in Play. There is language-specific documentation about working with databases in the [[Java|JavaDatabase]] and [[Scala|ScalaDatabase]] guides. 5 | 6 | - [[Using an in memory H2 database|Developing-with-the-H2-Database]] 7 | - [[Managing database evolutions|Evolutions]] 8 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/tests/code/tests/guice/ComponentModule.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.tests.guice; 5 | 6 | // #component-module 7 | import com.google.inject.AbstractModule; 8 | 9 | public class ComponentModule extends AbstractModule { 10 | protected void configure() { 11 | bind(Component.class).to(DefaultComponent.class); 12 | } 13 | } 14 | // #component-module 15 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/distribution/app/assets/main.less: -------------------------------------------------------------------------------- 1 | @base: #f938ab; 2 | 3 | .box-shadow(@style, @c) when (iscolor(@c)) { 4 | -webkit-box-shadow: @style @c; 5 | box-shadow: @style @c; 6 | } 7 | .box-shadow(@style, @alpha: 50%) when (isnumber(@alpha)) { 8 | .box-shadow(@style, rgba(0, 0, 0, @alpha)); 9 | } 10 | .box { 11 | color: saturate(@base, 5%); 12 | border-color: lighten(@base, 30%); 13 | div { .box-shadow(0 0 5px, 30%) } 14 | } 15 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/tests/code/services/UserService.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package scalaguide.tests 5 | 6 | package services 7 | 8 | import models._ 9 | 10 | // #scalatest-userservice 11 | class UserService(userRepository : UserRepository) { 12 | 13 | def isAdmin(user:User) : Boolean = { 14 | userRepository.roles(user).contains(Role("ADMIN")) 15 | } 16 | } 17 | // #scalatest-userservice 18 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/cache/code/javaguide/cache/qualified/Application.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.cache.qualified; 5 | 6 | //#qualified 7 | import play.cache.*; 8 | import play.mvc.*; 9 | 10 | import javax.inject.Inject; 11 | 12 | public class Application extends Controller { 13 | 14 | @Inject @NamedCache("session-cache") CacheApi cache; 15 | 16 | // ... 17 | } 18 | //#qualified 19 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/http/code/javaguide/http/full/Application.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | 5 | //#full-controller 6 | //###replace: package controllers; 7 | package javaguide.http.full; 8 | 9 | import play.*; 10 | import play.mvc.*; 11 | 12 | public class Application extends Controller { 13 | 14 | public Result index() { 15 | return ok("It works!"); 16 | } 17 | 18 | } 19 | //#full-controller 20 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/ws/code/javaguide/ws/Application.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.ws; 5 | 6 | // #ws-controller 7 | import javax.inject.Inject; 8 | 9 | import play.mvc.*; 10 | import play.libs.ws.*; 11 | import java.util.concurrent.CompletionStage; 12 | 13 | public class Application extends Controller { 14 | 15 | @Inject WSClient ws; 16 | 17 | // ... 18 | } 19 | // #ws-controller 20 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/tests/code/tests/guice/controllers/Application.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package scalaguide.tests.guice 5 | package controllers 6 | 7 | // #controller 8 | import play.api.mvc._ 9 | import javax.inject.Inject 10 | 11 | class Application @Inject() (component: Component) extends Controller { 12 | def index() = Action { 13 | Ok(component.hello) 14 | } 15 | } 16 | // #controller 17 | -------------------------------------------------------------------------------- /framework/src/play-microbenchmark/src/main/scala/play/api/mvc/MvcHelpers.scala: -------------------------------------------------------------------------------- 1 | package play.api.mvc 2 | 3 | import org.openjdk.jmh.annotations.{ Level, Setup } 4 | import play.core.server.netty.NettyHelpers 5 | 6 | object MvcHelpers { 7 | def requestHeader(headerList: List[(String, String)]): RequestHeader = { 8 | val rawRequest = NettyHelpers.nettyRequest(headers = headerList) 9 | NettyHelpers.conversion.convertRequest(1L, NettyHelpers.localhost, None, rawRequest).get 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /framework/src/play/src/main/java/play/mvc/With.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.mvc; 5 | 6 | import java.lang.annotation.*; 7 | 8 | /** 9 | * Decorates an Action or a Controller with another Action. 10 | */ 11 | @Target({ElementType.TYPE,ElementType.METHOD}) 12 | @Retention(RetentionPolicy.RUNTIME ) 13 | public @interface With { 14 | Class>[] value(); 15 | } 16 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/multiproject-assets/module/build.sbt: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2009-2016 Lightbend Inc. 3 | // 4 | 5 | name := "assets-module-sample" 6 | 7 | version := "1.0-SNAPSHOT" 8 | 9 | scalaVersion := Option(System.getProperty("scala.version")).getOrElse("2.11.8") 10 | 11 | includeFilter in (Assets, LessKeys.less) := "*.less" 12 | 13 | excludeFilter in (Assets, LessKeys.less) := new PatternFilter("""[_].*\.less""".r.pattern) 14 | -------------------------------------------------------------------------------- /framework/src/play-java-forms/src/test/java/play/data/UserEmail.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.data; 5 | 6 | import play.data.validation.Constraints; 7 | 8 | public class UserEmail { 9 | 10 | @Constraints.Email 11 | public String email; 12 | 13 | public String getEmail() { 14 | return email; 15 | } 16 | 17 | public void setEmail(String email) { 18 | this.email = email; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /framework/src/routes-compiler/src/test/resources/complexTypes.routes: -------------------------------------------------------------------------------- 1 | GET /foo controllers.FooController.foo(bar: Option[Option[String]]) 2 | GET /foo controllers.FooController.foo(bar: (Int,Int,(Int,Int))) 3 | GET /foo controllers.FooController.foo(bar: A#B) 4 | GET /foo controllers.FooController.foo(bar: Option [ Option [ String ] ] ) 5 | GET /foo controllers.FooController.foo(bar: ( Int , Int , ( Int , Int ) ) ) 6 | GET /foo controllers.FooController.foo(bar: A # B ) 7 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/tests/code/views/html/index.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package views.html 5 | 6 | import play.api.mvc._ 7 | 8 | import scala.concurrent.{ExecutionContext, Future} 9 | import ExecutionContext.Implicits.global 10 | 11 | object index extends Results { 12 | 13 | def apply(input:String) : Future[Result] = { 14 | Future( 15 | Ok("Hello Coco") as("text/html") 16 | ) 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /framework/src/play-akka-http-server/src/sbt-test/akka-http/system-property/test: -------------------------------------------------------------------------------- 1 | # Start dev mode with the default server - NettyServer 2 | > run 3 | > verifyResourceContains / 200 unknown 4 | > playStop 5 | 6 | # Start dev mode with an overridden server - AkkaHttpServer 7 | > run -Dplay.server.provider=play.core.server.akkahttp.AkkaHttpServerProvider 8 | > verifyResourceContains / 200 akka-http 9 | > playStop 10 | 11 | # Check tests work with system properties 12 | > test 13 | 14 | # TODO: Test dist main class -------------------------------------------------------------------------------- /framework/src/play-java-forms/src/test/java/play/data/Money.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.data; 5 | 6 | import java.math.BigDecimal; 7 | 8 | public class Money { 9 | 10 | @Formats.Currency 11 | private BigDecimal amount; 12 | 13 | public BigDecimal getAmount() { 14 | return this.amount; 15 | } 16 | 17 | public void setAmount(BigDecimal amount) { 18 | this.amount = amount; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/assets/Assets.md: -------------------------------------------------------------------------------- 1 | 2 | # Static assets 3 | 4 | This section covers serving your application’s static resources such as JavaScript, CSS and images. 5 | 6 | - [[Working with public assets|AssetsOverview]] 7 | - [[Using CoffeeScript|AssetsCoffeeScript]] 8 | - [[Using LESS CSS|AssetsLess]] 9 | - [[Using Sass|AssetsSass]] 10 | - [[Using JSHint|AssetsJSHint]] 11 | - [[Using RequireJs|RequireJS-support]] 12 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/filters/code/AllowedHostsFilter.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package detailedtopics.configuration.allowedhosts.sapi 5 | 6 | //#filters 7 | import javax.inject.Inject 8 | 9 | import play.api.http.DefaultHttpFilters 10 | import play.filters.hosts.AllowedHostsFilter 11 | 12 | class Filters @Inject() (allowedHostsFilter: AllowedHostsFilter) 13 | extends DefaultHttpFilters(allowedHostsFilter) 14 | //#filters 15 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/akka/code/javaguide/akka/HelloActorProtocol.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | //#protocol 5 | //###replace: package actors; 6 | package javaguide.akka; 7 | 8 | public class HelloActorProtocol { 9 | 10 | public static class SayHello { 11 | public final String name; 12 | 13 | public SayHello(String name) { 14 | this.name = name; 15 | } 16 | } 17 | } 18 | //#protocol 19 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/forms/code/javaguide/forms/myFieldConstructorTemplate.scala.html: -------------------------------------------------------------------------------- 1 | @* #template *@ 2 | @(elements: helper.FieldElements) 3 | 4 |
5 | 6 |
7 | @elements.input 8 | @elements.errors.mkString(", ") 9 | @elements.infos.mkString(", ") 10 |
11 |
12 | @* #template *@ 13 | 14 | foobar 15 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/tests/index.toc: -------------------------------------------------------------------------------- 1 | ScalaTestingYourApplication:Testing your Application 2 | ScalaTestingWithScalaTest:Testing with ScalaTest 3 | ScalaFunctionalTestingWithScalaTest:Writing functional tests with ScalaTest 4 | ScalaTestingWithSpecs2:Testing with specs2 5 | ScalaFunctionalTestingWithSpecs2:Writing functional tests with specs2 6 | ScalaTestingWithGuice:Testing with Guice 7 | ScalaTestingWithDatabases:Testing with databases 8 | ScalaTestingWebServiceClients:Testing web service clients 9 | -------------------------------------------------------------------------------- /framework/src/play-ws/src/test/resources/play/api/libs/openid/discovery/xrds/invalid-op-identifier.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | http://randomtype.example.com 9 | http://openidprovider.example.com 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /framework/src/play/src/main/scala/play/api/mvc/package.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.api 5 | 6 | /** 7 | * Contains the Controller/Action/Result API to handle HTTP requests. 8 | * 9 | * For example, a typical controller: 10 | * {{{ 11 | * object Application extends Controller { 12 | * 13 | * def index = Action { 14 | * Ok("It works!") 15 | * } 16 | * 17 | * } 18 | * }}} 19 | */ 20 | package object mvc { 21 | 22 | } 23 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/sql/code/JavaApplicationDatabase.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.sql; 5 | 6 | import javax.inject.Inject; 7 | 8 | import play.mvc.*; 9 | import play.db.*; 10 | 11 | class JavaApplicationDatabase extends Controller { 12 | 13 | private Database db; 14 | 15 | @Inject 16 | public JavaApplicationDatabase(Database db) { 17 | this.db = db; 18 | } 19 | 20 | // ... 21 | } 22 | -------------------------------------------------------------------------------- /framework/src/play-ws/src/test/resources/play/api/libs/openid/discovery/xrds/simple-openid-1-op.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | http://openid.net/server/1.0 9 | http://openidprovider-server-1.example.com 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /framework/src/run-support/src/main/scala/play/runsupport/LoggerProxy.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.runsupport 5 | 6 | trait LoggerProxy { 7 | def verbose(message: => String): Unit 8 | def debug(message: => String): Unit 9 | def info(message: => String): Unit 10 | def warn(message: => String): Unit 11 | def error(message: => String): Unit 12 | def trace(t: => Throwable): Unit 13 | def success(message: => String): Unit 14 | } 15 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/production/cloud/DeployingCloud.md: -------------------------------------------------------------------------------- 1 | 2 | # Deploying a Play application to a cloud service 3 | 4 | Many third party cloud services have built in support for deploying Play applications. 5 | 6 | - [[Deploying to Heroku|ProductionHeroku]] 7 | - [[Deploying to Cloud Foundry|Deploying-CloudFoundry]] 8 | - [[Deploying to Clever Cloud|Deploying-CleverCloud]] 9 | - [[Deploying to Boxfuse and AWS|Deploying-Boxfuse]] 10 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/forms/code/scalaguide/forms/scalaforms/views/repeat.scala.html: -------------------------------------------------------------------------------- 1 | @(myForm: Form[UserListData])(implicit messages: Messages) 2 | 3 | @import scalaguide.forms.scalaforms.controllers.routes 4 | 5 | @helper.form(action = routes.Application.submit) { 6 | @* #form-field-repeat *@ 7 | @helper.inputText(myForm("name")) 8 | @helper.repeat(myForm("emails"), min = 1) { emailField => 9 | @helper.inputText(emailField) 10 | } 11 | @* #form-field-repeat *@ 12 | }) 13 | -------------------------------------------------------------------------------- /framework/bin/testSbtPlugins: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | # Copyright (C) 2009-2016 Lightbend Inc. 4 | 5 | . "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/build" 6 | 7 | cd $FRAMEWORK 8 | 9 | echo "[info]" 10 | echo "[info] ---- BUILDING PLAY" 11 | echo "[info]" 12 | build "$@" quickPublish publishLocal 13 | 14 | echo "[info]" 15 | echo "[info] ---- SCRIPTED TESTS" 16 | echo "[info]" 17 | 18 | build "$@" scripted 19 | 20 | echo "[info]" 21 | echo "[info] ALL TESTS PASSED" 22 | echo "[info]" 23 | -------------------------------------------------------------------------------- /framework/src/play-test/src/main/scala/play/api/test/package.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.api 5 | 6 | /** 7 | * Contains test helpers. 8 | */ 9 | package object test { 10 | /** 11 | * Provided as an implicit by WithServer and WithBrowser. 12 | */ 13 | type Port = Int 14 | 15 | /** 16 | * A structural type indicating there is an application. 17 | */ 18 | type HasApp = { 19 | def app: Application 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /framework/src/play-ws/src/test/resources/play/api/libs/openid/discovery/xrds/simple-openid-1.1-op.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | http://openid.net/server/1.1 9 | http://openidprovider-server-1.1.example.com 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/routes-compiler-plugin/injected-routes-compilation/app/controllers/InstanceController.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package controllers 5 | 6 | import play.api.mvc._ 7 | import javax.inject.Inject 8 | 9 | class InstanceController @Inject() (c: ControllerComponents) extends AbstractController(c) { 10 | var invoked = 0 11 | 12 | def index = Action { 13 | invoked += 1 14 | Ok(invoked.toString) 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/advanced/routing/code/javaguide/binder/controllers/Users.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.binder.controllers; 5 | 6 | import play.mvc.Controller; 7 | import play.mvc.Result; 8 | 9 | public class Users extends Controller { 10 | 11 | public Result list() { 12 | return ok("List Users"); 13 | } 14 | 15 | public Result get(Long id) { 16 | return ok("Get user by id"); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/dependencyinjection/code/javaguide/di/CurrentSharePrice.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.di; 5 | 6 | //#singleton 7 | import javax.inject.*; 8 | 9 | @Singleton 10 | public class CurrentSharePrice { 11 | private volatile int price; 12 | 13 | public void set(int p) { 14 | price = p; 15 | } 16 | 17 | public int get() { 18 | return price; 19 | } 20 | } 21 | //#singleton 22 | -------------------------------------------------------------------------------- /framework/src/play-datacommons/src/main/scala/play/api/data/validation/package.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.api.data 5 | 6 | /** 7 | * Contains the validation API used by `Form`. 8 | * 9 | * For example, to define a custom constraint: 10 | * {{{ 11 | * val negative = Constraint[Int] { 12 | * case i if i < 0 => Valid 13 | * case _ => Invalid("Must be a negative number.") 14 | * } 15 | * }}} 16 | */ 17 | package object validation 18 | -------------------------------------------------------------------------------- /framework/src/play-ws/src/test/resources/play/api/libs/openid/discovery/xrds/simple-op.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | http://specs.openid.net/auth/2.0/signon 9 | https://www.google.com/a/example.com/o8/ud?be=o8 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/dependencyinjection/code/javaguide/di/constructor/MyComponent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.di.constructor; 5 | 6 | //#constructor 7 | import javax.inject.*; 8 | import play.libs.ws.*; 9 | 10 | public class MyComponent { 11 | private final WSClient ws; 12 | 13 | @Inject 14 | public MyComponent(WSClient ws) { 15 | this.ws = ws; 16 | } 17 | 18 | // ... 19 | } 20 | //#constructor 21 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/production/code/production.sbt: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2009-2016 Lightbend Inc. 3 | // 4 | 5 | //#no-scaladoc 6 | sources in (Compile, doc) := Seq.empty 7 | 8 | publishArtifact in (Compile, packageDoc) := false 9 | //#no-scaladoc 10 | 11 | //#publish-repo 12 | publishTo := Some( 13 | "My resolver" at "https://mycompany.com/repo" 14 | ) 15 | 16 | credentials += Credentials( 17 | "Repo", "https://mycompany.com/repo", "admin", "admin123" 18 | ) 19 | //#publish-repo 20 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/ws/code/javaguide.ws.routes: -------------------------------------------------------------------------------- 1 | # #ws-openid-routes 2 | GET /openID/login controllers.OpenIDController.login() 3 | POST /openID/login controllers.OpenIDController.loginPost() 4 | GET /openID/callback controllers.OpenIDController.openIDCallback() 5 | # #ws-openid-routes 6 | 7 | # #ws-oauth-routes 8 | GET /twitter/homeTimeline controllers.Twitter.homeTimeline() 9 | GET /twitter/auth controllers.Twitter.auth() 10 | # #ws-oauth-routes 11 | -------------------------------------------------------------------------------- /framework/src/play-ws/src/test/resources/play/api/libs/openid/discovery/xrds/simple-op-non-unique.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | http://specs.openid.net/auth/2.0/server 9 | https://www.google.com/a/example.com/o8/ud?be=o8 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /framework/src/run-support/src/main/scala/play/runsupport/NamedURLClassLoader.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.runsupport 5 | 6 | import java.net.{ URL, URLClassLoader } 7 | 8 | /** 9 | * A ClassLoader with a toString() that prints name/urls. 10 | */ 11 | class NamedURLClassLoader(name: String, urls: Array[URL], parent: ClassLoader) extends URLClassLoader(urls, parent) { 12 | override def toString = name + "{" + getURLs.map(_.toString).mkString(", ") + "}" 13 | } 14 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/forms/code/javaguide/forms/view.scala.html: -------------------------------------------------------------------------------- 1 | @(form: Form[_]) 2 | 3 | @* #global-errors *@ 4 | @if(form.hasGlobalErrors) { 5 |

6 | @for(error <- form.globalErrors) { 7 |

@Messages(error.messages, error.arguments.toArray: _*)

8 | } 9 |

10 | } 11 | @* #global-errors *@ 12 | 13 | @* #field-errors *@ 14 | @for(error <- form("email").errors) { 15 |

@Messages(error.messages, error.arguments.toArray: _*)

16 | } 17 | @* #field-errors *@ 18 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/http/code/javaguide/http/routing/reverse/controllers/Application.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | //#controller 5 | //###replace: package controllers; 6 | package javaguide.http.routing.reverse.controllers; 7 | 8 | import play.*; 9 | import play.mvc.*; 10 | 11 | public class Application extends Controller { 12 | 13 | public Result hello(String name) { 14 | return ok("Hello " + name + "!"); 15 | } 16 | 17 | } 18 | //#controller 19 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/production/Production.md: -------------------------------------------------------------------------------- 1 | 2 | # Using Play in production 3 | 4 | This section covers topics related to building, configuring and deploying your Play application for production. 5 | 6 | - [[Deploying your application|Deploying]] 7 | - [[Production configuration|ProductionConfiguration]] 8 | - [[Setting up a front end HTTP server|HTTPServer]] 9 | - [[Configuring HTTPS|ConfiguringHttps]] 10 | - [[Deploying to a cloud service|DeployingCloud]] 11 | -------------------------------------------------------------------------------- /framework/src/build-link/src/main/java/play/core/server/ServerWithStop.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.core.server; 5 | 6 | /** 7 | * A server that can be stopped. 8 | */ 9 | public interface ServerWithStop { 10 | 11 | /** 12 | * Stop the server. 13 | */ 14 | public void stop(); 15 | 16 | /** 17 | * Get the address of the server. 18 | * 19 | * @return The address of the server. 20 | */ 21 | public java.net.InetSocketAddress mainAddress(); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/distribution/conf/routes: -------------------------------------------------------------------------------- 1 | # Routes 2 | # This file defines all application routes (Higher priority routes first) 3 | # ~~~~ 4 | 5 | # Home page 6 | GET / controllers.Application.index 7 | 8 | GET /config controllers.Application.config 9 | GET /countApplicationConf controllers.Application.count 10 | 11 | # Map static resources from the /public folder to the /assets URL path 12 | GET /assets/*file controllers.Assets.at(path="/public", file) 13 | -------------------------------------------------------------------------------- /framework/src/play/src/main/scala/play/api/Exceptions.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.api 5 | 6 | /** 7 | * Generic exception for unexpected error cases. 8 | */ 9 | case class UnexpectedException(message: Option[String] = None, unexpected: Option[Throwable] = None) extends PlayException( 10 | "Unexpected exception", 11 | message.getOrElse { 12 | unexpected.map(t => "%s: %s".format(t.getClass.getSimpleName, t.getMessage)).getOrElse("") 13 | }, 14 | unexpected.orNull 15 | ) 16 | -------------------------------------------------------------------------------- /framework/src/play/src/main/scala/views/helper/form.scala.html: -------------------------------------------------------------------------------- 1 | @** 2 | * Generate an HTML form. 3 | * 4 | * Example: 5 | * {{{ 6 | * @form(action = routes.Users.submit, args = 'class -> "myForm") { 7 | * ... 8 | * } 9 | * }}} 10 | * 11 | * @param action The submit action. 12 | * @param args Set of extra HTML attributes. 13 | * @param body The form body. 14 | *@ 15 | @(action: play.api.mvc.Call, args: (Symbol,String)*)(body: => Html) 16 | 17 |
18 | @body 19 |
20 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/assets/code/common.assets.routes: -------------------------------------------------------------------------------- 1 | #assets-wildcard 2 | GET /assets/*file controllers.Assets.at(path="/public", file) 3 | #assets-wildcard 4 | 5 | #assets-single-static-file 6 | GET /favicon.ico controllers.Assets.at(path="/public", file="favicon.ico") 7 | #assets-single-static-file 8 | 9 | #assets-two-mappings 10 | GET /javascripts/*file controllers.Assets.at(path="/public/javascripts", file) 11 | GET /images/*file controllers.Assets.at(path="/public/images", file) 12 | #assets-two-mappings 13 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/filters/Filters.md: -------------------------------------------------------------------------------- 1 | 2 | # Built-in HTTP filters 3 | 4 | Play provides several standard filters that can modify the HTTP behavior of your application. You can also write your own filters in either [[Java|JavaHttpFilters]] or [[Scala|ScalaHttpFilters]]. 5 | 6 | - [[Configuring gzip encoding|GzipEncoding]] 7 | - [[Configuring security headers|SecurityHeaders]] 8 | - [[Configuring CORS|CorsFilter]] 9 | - [[Configuring allowed hosts|AllowedHostsFilter]] 10 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/forms/code/javaguide/forms/csrf/Filters.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.forms.csrf; 5 | 6 | //#filters 7 | import play.http.DefaultHttpFilters; 8 | import play.mvc.EssentialFilter; 9 | import play.filters.csrf.CSRFFilter; 10 | import javax.inject.Inject; 11 | 12 | public class Filters extends DefaultHttpFilters { 13 | @Inject 14 | public Filters(CSRFFilter csrfFilter) { 15 | super(csrfFilter); 16 | } 17 | } 18 | //#filters 19 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/configuration/ws/code/gentruststore.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # #context 4 | export PW=`cat password` 5 | 6 | # Create a JKS keystore that trusts the example CA, with the default password. 7 | keytool -import -v \ 8 | -alias exampleca \ 9 | -file exampleca.crt \ 10 | -keypass:env PW \ 11 | -storepass changeit \ 12 | -keystore exampletrust.jks << EOF 13 | yes 14 | EOF 15 | 16 | # List out the details of the store password. 17 | keytool -list -v \ 18 | -keystore exampletrust.jks \ 19 | -storepass changeit 20 | 21 | # #context -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/cache/code/javaguide/cache/inject/Application.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.cache.inject; 5 | //#inject 6 | import play.cache.*; 7 | import play.mvc.*; 8 | 9 | import javax.inject.Inject; 10 | 11 | public class Application extends Controller { 12 | 13 | private AsyncCacheApi cache; 14 | 15 | @Inject 16 | public Application(AsyncCacheApi cache) { 17 | this.cache = cache; 18 | } 19 | 20 | // ... 21 | } 22 | //#inject 23 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/json/code/javaguide/json/JavaJsonCustomObjectMapperModule.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | 5 | package javaguide.json; 6 | 7 | import com.google.inject.AbstractModule; 8 | 9 | //#custom-java-object-mapper2 10 | public class JavaJsonCustomObjectMapperModule extends AbstractModule{ 11 | 12 | @Override 13 | protected void configure() { 14 | bind(JavaJsonCustomObjectMapper.class).asEagerSingleton(); 15 | } 16 | 17 | } 18 | //#custom-java-object-mapper2 -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/forms/code/javaguide/forms/FormattersModule.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.forms; 5 | 6 | //#register-formatter 7 | import com.google.inject.AbstractModule; 8 | 9 | import play.data.format.Formatters; 10 | 11 | public class FormattersModule extends AbstractModule { 12 | 13 | @Override 14 | protected void configure() { 15 | 16 | bind(Formatters.class).toProvider(FormattersProvider.class); 17 | 18 | } 19 | } 20 | //#register-formatter -------------------------------------------------------------------------------- /framework/src/play-ws/src/test/resources/play/api/libs/openid/discovery/html/openIDProvider.html: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /framework/src/play/src/main/scala/play/api/data/package.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.api 5 | 6 | /** 7 | * Contains data manipulation helpers (typically HTTP form handling) 8 | * 9 | * {{{ 10 | * import play.api.data._ 11 | * import play.api.data.Forms._ 12 | * 13 | * val taskForm = Form( 14 | * tuple( 15 | * "name" -> text(minLength = 3), 16 | * "dueDate" -> date("yyyy-MM-dd"), 17 | * "done" -> boolean 18 | * ) 19 | * ) 20 | * }}} 21 | * 22 | */ 23 | package object data 24 | -------------------------------------------------------------------------------- /documentation/addMarkdownCopyright: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | # Copyright (C) 2009-2016 Lightbend Inc. 4 | 5 | year=`date +%Y` 6 | cd manual 7 | for f in `find . -name '*.md'` 8 | do 9 | echo "" > /tmp/mdcw 10 | if head -n 1 $f | grep -qiE "(Lightbend|Typesafe) Inc. > /tmp/mdcw 13 | else 14 | cat $f >> /tmp/mdcw 15 | fi 16 | cp /tmp/mdcw $f 17 | rm /tmp/mdcw 18 | echo Updated $f 19 | done 20 | 21 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/filters/code/detailedtopics/configuration/cors/Filters.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package detailedtopics.configuration.cors; 5 | 6 | //#filters 7 | import play.mvc.EssentialFilter; 8 | import play.filters.cors.CORSFilter; 9 | import play.http.DefaultHttpFilters; 10 | 11 | import javax.inject.Inject; 12 | 13 | public class Filters extends DefaultHttpFilters { 14 | @Inject public Filters(CORSFilter corsFilter) { 15 | super(corsFilter); 16 | } 17 | } 18 | //#filters 19 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/http/code/javaguide.http.routing.defaultcontroller.routes: -------------------------------------------------------------------------------- 1 | # #defaultcontroller 2 | # Redirects to https://www.playframework.com/ with 303 See Other 3 | GET /about controllers.Default.redirect(to = "https://www.playframework.com/") 4 | 5 | # Responds with 404 Not Found 6 | GET /orders controllers.Default.notFound 7 | 8 | # Responds with 500 Internal Server Error 9 | GET /clients controllers.Default.error 10 | 11 | # Responds with 501 Not Implemented 12 | GET /posts controllers.Default.todo 13 | # #defaultcontroller 14 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/tests/code/javaguide/tests/HamcrestTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.tests; 5 | 6 | //#test-hamcrest 7 | import static org.hamcrest.CoreMatchers.*; 8 | import static org.junit.Assert.assertThat; 9 | 10 | import org.junit.Test; 11 | 12 | public class HamcrestTest { 13 | 14 | @Test 15 | public void testString() { 16 | String str = "good"; 17 | assertThat(str, allOf(equalTo("good"), startsWith("goo"))); 18 | } 19 | 20 | } 21 | //#test-hamcrest 22 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/http/code/scalaguide.http.routing.defaultcontroller.routes: -------------------------------------------------------------------------------- 1 | # #defaultcontroller 2 | # Redirects to https://www.playframework.com/ with 303 See Other 3 | GET /about controllers.Default.redirect(to = "https://www.playframework.com/") 4 | 5 | # Responds with 404 Not Found 6 | GET /orders controllers.Default.notFound 7 | 8 | # Responds with 500 Internal Server Error 9 | GET /clients controllers.Default.error 10 | 11 | # Responds with 501 Not Implemented 12 | GET /posts controllers.Default.todo 13 | # #defaultcontroller 14 | -------------------------------------------------------------------------------- /framework/src/play/src/test/scala/play/data/AnotherUser.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.data; 5 | 6 | import java.util.*; 7 | 8 | public class AnotherUser { 9 | 10 | private String name; 11 | private List emails = new ArrayList(); 12 | 13 | public void setName(String name) { 14 | this.name = name; 15 | } 16 | 17 | public String getName() { 18 | return name; 19 | } 20 | 21 | public List getEmails() { 22 | return emails; 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/forms/code/scalaguide/forms/scalaforms/views/nested.scala.html: -------------------------------------------------------------------------------- 1 | @(userFormNested: Form[UserAddressData])(implicit messages: Messages) 2 | 3 | @import scalaguide.forms.scalaforms.controllers._ 4 | @import scalaguide.forms.scalaforms.controllers.routes 5 | 6 | @helper.form(action = routes.Application.submit) { 7 | @* #form-field-nested *@ 8 | @helper.inputText(userFormNested("name")) 9 | @helper.inputText(userFormNested("address.street")) 10 | @helper.inputText(userFormNested("address.city")) 11 | @* #form-field-nested *@ 12 | }) 13 | -------------------------------------------------------------------------------- /framework/src/play-guice/src/test/scala/play/core/test/Fakes.scala: -------------------------------------------------------------------------------- 1 | package play.core.test 2 | 3 | import play.api.inject.guice.GuiceInjectorBuilder 4 | import play.api.inject.{ Binding, Injector } 5 | 6 | /** 7 | * Utilities to help with testing 8 | */ 9 | object Fakes { 10 | 11 | /** 12 | * Create an injector from the given bindings. 13 | * 14 | * @param bindings The bindings 15 | * @return The injector 16 | */ 17 | def injectorFromBindings(bindings: Seq[Binding[_]]): Injector = { 18 | new GuiceInjectorBuilder().bindings(bindings).injector 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /framework/src/play-java-forms/src/test/java/play/data/BlueValidator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.data; 5 | 6 | 7 | import play.data.validation.Constraints; 8 | import play.libs.F; 9 | 10 | 11 | public class BlueValidator extends Constraints.Validator { 12 | 13 | public boolean isValid(String value) { 14 | return "blue".equals(value); 15 | } 16 | 17 | public F.Tuple getErrorMessageKey() { 18 | return F.Tuple("notblue", new Object[] {}); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /framework/src/play-java-jpa/src/main/java/play/db/jpa/Transactional.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.db.jpa; 5 | 6 | import play.mvc.*; 7 | 8 | import java.lang.annotation.*; 9 | 10 | /** 11 | * Wraps the annotated action in an JPA transaction. 12 | */ 13 | @With(TransactionalAction.class) 14 | @Target({ElementType.TYPE, ElementType.METHOD}) 15 | @Retention(RetentionPolicy.RUNTIME) 16 | public @interface Transactional { 17 | String value() default "default"; 18 | boolean readOnly() default false; 19 | } 20 | -------------------------------------------------------------------------------- /framework/src/play-ws/src/test/resources/play/api/libs/openid/discovery/html/openIDProvider-OpenID-1.1.html: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/advanced/routing/code/ApiRouter.scala: -------------------------------------------------------------------------------- 1 | //#inject-sird-router 2 | package api 3 | 4 | import javax.inject.Inject 5 | 6 | import play.api.mvc._ 7 | import play.api.routing.Router.Routes 8 | import play.api.routing.SimpleRouter 9 | import play.api.routing.sird._ 10 | 11 | class ApiRouter @Inject()(controller: ApiController) 12 | extends SimpleRouter 13 | { 14 | override def routes: Routes = { 15 | case GET(p"/") => controller.index 16 | } 17 | } 18 | //#inject-sird-router 19 | 20 | class ApiController extends Controller { 21 | def index() = TODO 22 | } -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/akka/code/javaguide/akka/modules/MyModule.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.akka.modules; 5 | import javaguide.akka.ConfiguredActor; 6 | 7 | //#binding 8 | import com.google.inject.AbstractModule; 9 | import play.libs.akka.AkkaGuiceSupport; 10 | 11 | public class MyModule extends AbstractModule implements AkkaGuiceSupport { 12 | @Override 13 | protected void configure() { 14 | bindActor(ConfiguredActor.class, "configured-actor"); 15 | } 16 | } 17 | //#binding 18 | -------------------------------------------------------------------------------- /framework/src/play/src/main/java/play/mvc/EssentialFilter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.mvc; 5 | 6 | public abstract class EssentialFilter implements play.api.mvc.EssentialFilter { 7 | public abstract EssentialAction apply(play.mvc.EssentialAction next); 8 | 9 | @Override 10 | public play.mvc.EssentialAction apply(play.api.mvc.EssentialAction next) { 11 | return apply(next.asJava()); 12 | } 13 | 14 | @Override 15 | public EssentialFilter asJava() { 16 | return this; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/configuration/Configuration.md: -------------------------------------------------------------------------------- 1 | 2 | # Configuration 3 | 4 | This section explains how to configure your Play application. 5 | 6 | - [[Configuration file syntax and features|ConfigFile]] 7 | - [[Configuring the application secret|ApplicationSecret]] 8 | - [[Configuring the JDBC connection pool|SettingsJDBC]] 9 | - [[Configuring Netty server|SettingsNetty]] 10 | - [[Configuring Play's thread pools|ThreadPools]] 11 | - [[Configuring logging|SettingsLogger]] 12 | - [[Configuring WS SSL|WsSSL]] 13 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/application/code/javaguide/application/httpfilters/Filters.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.application.httpfilters; 5 | 6 | // #filters 7 | import play.mvc.EssentialFilter; 8 | import play.http.DefaultHttpFilters; 9 | import play.filters.gzip.GzipFilter; 10 | import javax.inject.Inject; 11 | 12 | public class Filters extends DefaultHttpFilters { 13 | @Inject 14 | public Filters(GzipFilter gzip, LoggingFilter logging) { 15 | super(gzip, logging); 16 | } 17 | } 18 | //#filters 19 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/index.toc: -------------------------------------------------------------------------------- 1 | JavaHome:Section contents 2 | http:HTTP programming 3 | async:Asynchronous HTTP programming 4 | templates:The Twirl template engine 5 | forms:Form submission and validation 6 | json:Working with Json 7 | xml:Working with XML 8 | upload:Handling file upload 9 | sql:Accessing an SQL database 10 | cache:Using the Cache 11 | ws:Calling WebServices 12 | akka:Integrating with Akka 13 | i18n:Internationalization with Messages 14 | dependencyinjection:Dependency Injection 15 | application:Application Settings 16 | tests:Testing your application 17 | logging:Logging 18 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/tests/code/javaguide/tests/SimpleTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.tests; 5 | 6 | //#test-simple 7 | import static org.junit.Assert.*; 8 | 9 | import org.junit.Test; 10 | 11 | public class SimpleTest { 12 | 13 | @Test 14 | public void testSum() { 15 | int a = 1 + 1; 16 | assertEquals(2, a); 17 | } 18 | 19 | @Test 20 | public void testString() { 21 | String str = "Hello world"; 22 | assertFalse(str.isEmpty()); 23 | } 24 | 25 | } 26 | //#test-simple 27 | -------------------------------------------------------------------------------- /framework/src/play-test/src/test/java/play/test/WithApplicationTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.test; 5 | 6 | import org.junit.Test; 7 | import play.i18n.MessagesApi; 8 | 9 | import static org.junit.Assert.assertNotNull; 10 | 11 | /** 12 | * Tests WithApplication functionality. 13 | */ 14 | public class WithApplicationTest extends WithApplication { 15 | 16 | @Test 17 | public void withInject() { 18 | MessagesApi messagesApi = inject(MessagesApi.class); 19 | assertNotNull(messagesApi); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /framework/src/run-support/src/main/scala/play/runsupport/DelegatedResourcesClassLoader.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.runsupport 5 | 6 | import java.net.URL 7 | 8 | /** 9 | * A ClassLoader that only uses resources from its parent 10 | */ 11 | class DelegatedResourcesClassLoader(name: String, urls: Array[URL], parent: ClassLoader) extends NamedURLClassLoader(name, urls, parent) { 12 | require(parent ne null) 13 | override def getResources(name: String): java.util.Enumeration[java.net.URL] = getParent.getResources(name) 14 | } 15 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/distribution-without-documentation/app/controllers/Application.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package controllers 5 | 6 | import play.api._ 7 | import play.api.mvc._ 8 | import scala.collection.JavaConverters._ 9 | 10 | import javax.inject.Inject 11 | 12 | /** 13 | * i will fail since I check for a undefined class [[Documentation]] 14 | */ 15 | class Application @Inject() (action: DefaultActionBuilder) extends Controller { 16 | 17 | def index = action { 18 | Ok 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/distribution/app/views/main.scala.html: -------------------------------------------------------------------------------- 1 | @(title: String)(content: Html) 2 | 3 | 4 | 5 | 6 | 7 | @title 8 | 9 | 10 | 11 | 12 | 13 | @content 14 | 15 | 16 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/production/code/scala/CustomSSLEngineProvider.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package scala 5 | 6 | // #scalaexample 7 | import javax.net.ssl._ 8 | import play.core.ApplicationProvider 9 | import play.server.api._ 10 | 11 | class CustomSSLEngineProvider(appProvider: ApplicationProvider) extends SSLEngineProvider { 12 | 13 | override def createSSLEngine(): SSLEngine = { 14 | // change it to your custom implementation 15 | SSLContext.getDefault.createSSLEngine 16 | } 17 | 18 | } 19 | // #scalaexample 20 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/index.toc: -------------------------------------------------------------------------------- 1 | ScalaHome:Section introduction 2 | http:HTTP programming 3 | async:Asynchronous HTTP programming 4 | templates:The Twirl template engine 5 | forms:Form submission and validation 6 | json:Working with Json 7 | xml:Working with XML 8 | upload:Handling file upload 9 | sql:Accessing an SQL database 10 | cache:Using the Cache 11 | ws:Calling WebServices 12 | akka:Integrating with Akka 13 | i18n:Internationalization with Messages 14 | dependencyinjection:Dependency injection 15 | application:Application Settings 16 | tests:Testing your application 17 | logging:Logging 18 | -------------------------------------------------------------------------------- /documentation/project/plugins.sbt: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2009-2016 Lightbend Inc. 2 | 3 | // Comment to get more information during initialization 4 | logLevel := Level.Warn 5 | 6 | lazy val plugins = (project in file(".")).dependsOn(playDocsPlugin) 7 | 8 | lazy val playDocsPlugin = ProjectRef(Path.fileProperty("user.dir").getParentFile / "framework", "Play-Docs-SBT-Plugin") 9 | 10 | // Required for Production.md 11 | addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.11.2") 12 | 13 | // Required for PlayEnhancer.md 14 | addSbtPlugin("com.typesafe.sbt" % "sbt-play-enhancer" % "1.1.0-RC2") 15 | -------------------------------------------------------------------------------- /framework/src/play/src/main/java/play/inject/Bindings.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.inject; 5 | 6 | import play.api.inject.BindingKey; 7 | 8 | public class Bindings { 9 | 10 | /** 11 | * Create a binding key for the given class. 12 | * @param the type of the bound class 13 | * @param clazz the class to bind 14 | * @return the binding key for the given class 15 | */ 16 | public static final BindingKey bind(Class clazz) { 17 | return new BindingKey(clazz); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/filters/code/detailedtopics/configuration/hosts/Filters.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package detailedtopics.configuration.hosts; 5 | 6 | //#filters 7 | import play.mvc.EssentialFilter; 8 | import play.filters.hosts.AllowedHostsFilter; 9 | import play.http.DefaultHttpFilters; 10 | 11 | import javax.inject.Inject; 12 | 13 | public class Filters extends DefaultHttpFilters { 14 | @Inject public Filters(AllowedHostsFilter allowedHostsFilter) { 15 | super(allowedHostsFilter); 16 | } 17 | } 18 | //#filters 19 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/advanced/routing/code/scalaguide/binder/controllers/BinderApplication.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package scalaguide.binder.controllers 5 | 6 | 7 | import play.api._ 8 | import play.api.mvc._ 9 | import scalaguide.binder.models._ 10 | 11 | class BinderApplication extends Controller { 12 | 13 | //#path 14 | def user(user: User) = Action { 15 | Ok(user.name) 16 | } 17 | //#path 18 | 19 | //#query 20 | def age(age: AgeRange) = Action { 21 | Ok(age.from.toString) 22 | } 23 | //#query 24 | 25 | } 26 | -------------------------------------------------------------------------------- /documentation/manual/releases/release24/migration24/code24/MyModule.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | 5 | //#module-decl 6 | import play.api.Configuration; 7 | import play.api.Environment; 8 | import play.api.inject.Binding; 9 | import play.api.inject.Module; 10 | 11 | import scala.collection.Seq; 12 | 13 | public class MyModule extends Module { 14 | public Seq> bindings(Environment environment, Configuration configuration) { 15 | return seq( 16 | bind(MyComponent.class).to(MyComponentImpl.class) 17 | ); 18 | } 19 | } 20 | //#module-decl 21 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/production/code/rpm.sbt: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2009-2016 Lightbend Inc. 3 | // 4 | 5 | //#rpm 6 | lazy val root = (project in file(".")) 7 | .enablePlugins(PlayScala, RpmPlugin) 8 | 9 | maintainer in Linux := "First Lastname " 10 | 11 | packageSummary in Linux := "My custom package summary" 12 | 13 | packageDescription := "My longer package description" 14 | 15 | rpmRelease := "1" 16 | 17 | rpmVendor := "example.com" 18 | 19 | rpmUrl := Some("http://github.com/example/server") 20 | 21 | rpmLicense := Some("Apache v2") 22 | //#rpm 23 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/advanced/routing/code/javaguide.binder.routes: -------------------------------------------------------------------------------- 1 | # #user 2 | GET /user/:user controllers.BinderApplication.user(user: javaguide.binder.models.User) 3 | # #user 4 | 5 | # #ageRange 6 | GET /ageRange controllers.BinderApplication.age(age: javaguide.binder.models.AgeRange) 7 | # #ageRange 8 | 9 | GET /users/list controllers.Users.list 10 | GET /users/:id controllers.Users.get(id: Long) 11 | 12 | # #javascript-router-routes 13 | GET /javascriptRoutes controllers.Application.javascriptRoutes 14 | # #javascript-router-routes 15 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/advanced/routing/code/scalaguide.binder.routes: -------------------------------------------------------------------------------- 1 | # #user 2 | GET /user/:user controllers.BinderApplication.user(user: scalaguide.binder.models.User) 3 | # #user 4 | 5 | # #ageRange 6 | GET /ageRange controllers.BinderApplication.age(age: scalaguide.binder.models.AgeRange) 7 | # #ageRange 8 | 9 | # #javascript-router-routes 10 | GET /javascriptRoutes controllers.Application.javascriptRoutes 11 | # #javascript-router-routes 12 | 13 | GET /users/list controllers.Users.list 14 | GET /users/:id controllers.Users.get(id: Long) 15 | -------------------------------------------------------------------------------- /framework/bin/checkCodeStyle: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | # This script checks that the code is formatted correctly 4 | 5 | . "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/build" 6 | 7 | cd $FRAMEWORK 8 | 9 | build clean scalariformFormat test:scalariformFormat 10 | git diff --exit-code || ( 11 | echo "ERROR: Scalariform check failed, see differences above." 12 | echo "To fix, format your sources using sbt scalariformFormat test:scalariformFormat before submitting a pull request." 13 | echo "Additionally, please squash your commits (eg, use git commit --amend) if you're going to update this pull request." 14 | false 15 | ) 16 | -------------------------------------------------------------------------------- /framework/src/play/src/main/scala/views/helper/inputFile.scala.html: -------------------------------------------------------------------------------- 1 | @** 2 | * Generate an HTML input file. 3 | * 4 | * Example: 5 | * {{{ 6 | * @inputFile(field = myForm("name"), args = 'size -> 10) 7 | * }}} 8 | * 9 | * @param field The form field. 10 | * @param args Set of extra attributes. 11 | * @param handler The field constructor. 12 | *@ 13 | @(field: play.api.data.Field, args: (Symbol,Any)*)(implicit handler: FieldConstructor, messages: play.api.i18n.MessagesProvider) 14 | 15 | @input(field, args:_*) { (id, name, value, htmlArgs) => 16 | 17 | } 18 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/filters/code/detailedtopics/configuration/headers/Filters.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package detailedtopics.configuration.headers; 5 | 6 | //#filters 7 | import play.mvc.EssentialFilter; 8 | import play.filters.headers.SecurityHeadersFilter; 9 | import play.http.DefaultHttpFilters; 10 | 11 | import javax.inject.Inject; 12 | 13 | public class Filters extends DefaultHttpFilters { 14 | @Inject public Filters(SecurityHeadersFilter securityHeadersFilter) { 15 | super(securityHeadersFilter); 16 | } 17 | } 18 | //#filters 19 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/forms/code/scalaguide/forms/scalafieldconstructor/myFieldConstructorTemplate.scala.html: -------------------------------------------------------------------------------- 1 | @* #form-myfield *@ 2 | @(elements: helper.FieldElements) 3 | 4 |
5 | 6 |
7 | @elements.input 8 | @elements.errors.mkString(", ") 9 | @elements.infos.mkString(", ") 10 |
11 |
12 | @* #form-myfield *@ 13 | --foo-- 14 | the above is here so the tests can check this field constructor was used. 15 | -------------------------------------------------------------------------------- /framework/src/sbt-plugin/src/sbt-test/play-sbt-plugin/dev-mode/app/Module.scala: -------------------------------------------------------------------------------- 1 | import java.io.FileWriter 2 | import java.util.Date 3 | 4 | import com.google.inject.AbstractModule 5 | import play.api._ 6 | 7 | class Module(environment: Environment, configuration: Configuration) extends AbstractModule { 8 | 9 | override def configure() = { 10 | val writer = new FileWriter(environment.getFile("target/reload.log"), true) 11 | writer.write(new Date() + " - reloaded\n") 12 | writer.close() 13 | 14 | if (configuration.getBoolean("fail").getOrElse(false)) { 15 | throw new RuntimeException() 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /framework/src/play-java-forms/src/main/java/play/data/FormFactoryModule.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.data; 5 | 6 | import play.api.Configuration; 7 | import play.api.Environment; 8 | import play.api.inject.Binding; 9 | import play.api.inject.Module; 10 | import scala.collection.Seq; 11 | 12 | public class FormFactoryModule extends Module { 13 | 14 | @Override 15 | public Seq> bindings(Environment environment, Configuration configuration) { 16 | return seq( 17 | bind(FormFactory.class).toSelf() 18 | ); 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /framework/src/play/src/main/java/play/server/ApplicationProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package play.server; 5 | 6 | import play.Application; 7 | 8 | 9 | /** 10 | * Provides information about a Play Application running inside a Play server. 11 | */ 12 | public class ApplicationProvider { 13 | 14 | private final Application application; 15 | 16 | public ApplicationProvider(Application application) { 17 | this.application = application; 18 | } 19 | 20 | public Application getApplication() { 21 | return application; 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /documentation/manual/working/javaGuide/main/sql/code/JavaNamedDatabase.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package javaguide.sql; 5 | 6 | import javax.inject.Inject; 7 | 8 | import play.mvc.Controller; 9 | import play.db.NamedDatabase; 10 | import play.db.Database; 11 | 12 | // inject "orders" database instead of "default" 13 | class JavaNamedDatabase extends Controller { 14 | private Database db; 15 | 16 | @Inject 17 | public JavaNamedDatabase(@NamedDatabase("orders") Database db) { 18 | this.db = db; 19 | } 20 | 21 | // do whatever you need with the db 22 | } 23 | -------------------------------------------------------------------------------- /framework/src/play/src/main/scala/views/helper/inputPassword.scala.html: -------------------------------------------------------------------------------- 1 | @** 2 | * Generate an HTML input password. 3 | * 4 | * Example: 5 | * {{{ 6 | * @inputPassword(field = myForm("password"), args = 'size -> 10) 7 | * }}} 8 | * 9 | * @param field The form field. 10 | * @param args Set of extra attributes. 11 | * @param handler The field constructor. 12 | *@ 13 | @(field: play.api.data.Field, args: (Symbol,Any)*)(implicit handler: FieldConstructor, messages: play.api.i18n.MessagesProvider) 14 | 15 | @input(field, args:_*) { (id, name, value, htmlArgs) => 16 | 17 | } 18 | -------------------------------------------------------------------------------- /framework/src/play/src/main/scala/views/helper/textarea.scala.html: -------------------------------------------------------------------------------- 1 | @** 2 | * Generate an HTML textarea. 3 | * 4 | * Example: 5 | * {{{ 6 | * @textarea(field = myForm("address"), args = 'rows -> 3, 'cols -> 50) 7 | * }}} 8 | * 9 | * @param field The form field. 10 | * @param args Set of extra attributes. 11 | * @param handler The field constructor. 12 | *@ 13 | @(field: play.api.data.Field, args: (Symbol,Any)*)(implicit handler: FieldConstructor, messages: play.api.i18n.MessagesProvider) 14 | 15 | @input(field, args:_*) { (id, name, value, htmlArgs) => 16 | 17 | } 18 | -------------------------------------------------------------------------------- /documentation/manual/working/commonGuide/build/Build.md: -------------------------------------------------------------------------------- 1 | 2 | # The build system 3 | 4 | This section gives details about Play's build system. 5 | 6 | - [[Overview of the build system|BuildOverview]] 7 | - [[About sbt settings|SBTSettings]] 8 | - [[Manage application dependencies|SBTDependencies]] 9 | - [[Working with sub-projects|SBTSubProjects]] 10 | - [[Play enhancer|PlayEnhancer]] 11 | - [[Aggregating reverse routers|AggregatingReverseRouters]] 12 | - [[Improving Compilation Times|CompilationSpeed]] 13 | - [[Cookbook|SBTCookbook]] 14 | - [[Debugging your build|SBTDebugging]] 15 | -------------------------------------------------------------------------------- /documentation/manual/working/scalaGuide/main/tests/code/specs2/ExamplePlaySpecificationSpec.scala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009-2016 Lightbend Inc. 3 | */ 4 | package scalaguide.tests.specs2 5 | 6 | import play.api.test._ 7 | 8 | // #scalafunctionaltest-playspecification 9 | class ExamplePlaySpecificationSpec extends PlaySpecification { 10 | "The specification" should { 11 | 12 | "have access to HeaderNames" in { 13 | USER_AGENT must be_===("User-Agent") 14 | } 15 | 16 | "have access to Status" in { 17 | OK must be_===(200) 18 | } 19 | } 20 | } 21 | // #scalafunctionaltest-playspecification 22 | --------------------------------------------------------------------------------