Play 3.0.5
*Released 24 July 2024
Play 2.9.5
*Released 24 July 2024
Play 3.0.4
*Released 17 June 2024
Play 2.9.4
*Released 17 June 2024
Play 3.0.3
*Released 7 May 2024
Play 2.9.3
*Released 7 May 2024
Play 3.0.2
*Released 1 March 2024
Play 2.9.2
*Released 1 March 2024
Play 3.0.1
*Released 19 December 2023
Play 2.9.1
*Released 19 December 2023
Play 2.8.22
*Released 3 June 2024
Play 2.8.21
*Released 9 November 2023
Play 3.0.0
*Released 25 October 2023
Highlights
Migration Guide
All changes
GitHub milestone
Play 2.9.0
*Released 25 October 2023
Highlights
Migration Guide
All changes
GitHub milestone
Play 2.8.20
*Released 18 July 2023
Play 2.8.19
*Released 13 January 2023
Play 2.8.18
*Released 17 October 2022
Play 2.8.17
*Released 6 October 2022
Play 2.8.16
*Released 2 June 2022
Play 2.8.15
*Released 31 March 2022
Play 2.8.13
*Released 11 January 2022
Play 2.8.11
*Released 1 December 2021
Play 2.8.8
*Released 8 April 2021
Play 2.8.7
*Released 14 December 2020
Play 2.7.9
*Released 14 December 2020
Play 2.8.6
*Released 10 December 2020
Play 2.7.8
*Released 10 December 2020
Play 2.8.5
*Released 9 November 2020
Play 2.8.4
*Released 5 November 2020
Play 2.7.7
*Released 5 November 2020
Play 2.8.3
*Released 26 October 2020
Play 2.7.6
*Released 26 October 2020
Play 2.8.2
*Released 21 May 2020
Play 2.7.5
*Released 20 May 2020
Play 2.8.1
*Released 31 Jan 2020
Play 2.8.0
Released 12 Dec 2019
Highlights
Migration Guide
All changes
Play 2.6.25
Released 6 Dec 2019
Play 2.7.4
Released 4 December 2019
Play 2.7.3
Released 19 June 2019
Play 2.6.24
Released 16 Oct 2019
Play 2.6.23
Released 14 May 2019
Play 2.6.22
Released 2 May 2019
Play 2.7.2
Released 25 Apr 2019
Play 2.7.1
Released 18 Apr 2019
Play 2.7.0
Released 1 Feb 2019
Highlights
Migration Guide
All changes
GitHub milestone
Play 2.6.21
Released 8 Jan 2019
Play 2.6.20
Released 8 Oct 2018
Play 2.6.19
Released 10 Sep 2018
Play 2.6.18
Released 20 Aug 2018
Play 2.6.17
Released 19 Jul 2018
Play 2.6.16
Released 16 Jul 2018
Play 2.6.15
Released 27 May 2018
Play 2.6.14
Released but not announced. Play 2.6.14 was released, but we missed a few things so we released Play 2.6.15 instead.
Play 2.6.13
Released 6 Apr 2018
Play 2.6.12
Released 2 Mar 2018
Play 2.6.11
Released 11 Jan 2018
Play 2.6.10
Released 21 Dec 2017
Play 2.6.9
Released 8 Dec 2017
Play 2.6.8
Unreleased. Some artifacts were not published for this version, so it should not be used.
Play 2.6.7
Released 1 Nov 2017
Play 2.6.6
Released 5 Oct 2017
Adds support for sbt 1.0
Play 2.6.5
Released 14 Sep 2017
Play 2.6.4
Unreleased. Do not use this version. Use Play 2.6.5 or a newer version instead.
Play 2.6.3
Released 12 Aug 2017
Play 2.6.2
Released 19 Jul 2017
Play 2.6.1
Released 6 Jul 2017
Play 2.6.0
Released 23 Jun 2017
- Akka HTTP is now the default server backend. We still will support the Netty server backend but plan to implement most new features on Akka HTTP.
- Experimental HTTP/2 support on Akka HTTP.
- No internal use of the global application instance (
Play.current
). It’s now deprecated and possible to disable completely usingplay.allowGlobalApplication = false
. - Request attributes for attaching arbitrary typed data to requests
- Twirl templates now can have a constructor for passing application dependencies. This allows for injectable templates
- Support for SLF4J markers in both the Java and Scala API, and a special security marker for security-related operations.
- Configuration improvements in the Scala API, using typeclasses for reading arbitrary types, and removal of the Java configuration API in favor of standard Typesafe
Config
. - Support for compile-time dependency injection in Java, allowing you to create a full Play application in Java without Guice or any dependency injection framework. We have an example using Dagger 2
- Play WS is now a separate module, and contains several useful improvements including HTTP caching support.
- Full support for Scala 2.12
Highlights
Migration Guide
Full changelog
Play 2.5.19 “Streamy”
Released 17 Aug 2018
Play 2.5.18 “Streamy”
Released 5 Oct 2017
Play 2.5.17 “Streamy”
Released 22 Sep 2017
Play 2.5.16 “Streamy”
Released 19 Jul 2017
Play 2.5.15 “Streamy”
Released 18 May 2017
- 7358: Unlock Akka 2.5 upgrade
- 7345: Make sure context.withRequest maintains original session and flash
- 7321: Line 85, changed “It” to “In”
- 7305: Typo “You should se your changes..” => “You should see your changes..”
- 7272: Remove references to
play
command - 7247: Backport “Remove FileInputStream/FileOutputStream”
- 7245: Replace DB.getConnection with db.getConnection
- 7241: Make it possible to disable the reverse router (#7189)
- 7123: Resolve issue #6041
- 7239: added play-webpack plugin informations
- 7237: link to sbt-native-packager 1.1.5 docs (#7217) (#7227)
- 7219: Include changes to Http.Context in Result from RoutingDsl (#7214)
Play 2.5.14 “Streamy”
Released 6 Apr 2017
- 7200: Upgrade akka and akka-http
- 7182: Upgrade logback dependency to fix 5 secs delays in unittests
- 7129: Small fix to wording in SBTDependencies.md
- 7126: Fix statement about empty List when using validate()
- 7080: Make play.Environment injectable
- 7077: Typo fixed from CRSF.getToken to CSRF.getToken
- 7057: WebSocket endpoints returning 400 for HEAD requests
- 7029: Fix empty query string parse
Play 2.5.13 “Streamy”
Released 10 Mar 2017
- #7040: Add @helper.repeatWithIndex(…) helper
- #7033: Fix XHTML mime type
- #7013: Add note to Migration25 about Lucidchart blog
- #6966: Fix documentation code NPE
- #6954: Update Typesafe Config to 1.3.1
- #6934: Update docs with more information about sbt new
- #6948: Remove images that related to activator
- #6944: Add Scalate as a library for Play support documentation
- #6933: Add immutable header to aggressiveCacheControl
- #6925: Upgrade sbt-native-packager to latest stable version
- #6874: Update Deploying.md
- #6908: Remove unnecessary println call
- #6906: added play-guard (Scala) to module directory
- #6850: Reference to play-redis module in Module directory in the documentation
Play 2.5.12 “Streamy”
Released 22 Jan 2017
- 6904: added httpcore dependency
Play 2.5.11 “Streamy”
Released 20 Jan 2017
- 6901: Upgrade Apache httpclient dependency
- 6839: parses the path and the query string from our uri
- 6883: Preserve headers, cookies, flash and session when gzipping
- 6897: Fix cookie max-age computation
- 6861: Add explicit binding for JPAEntityManagerContext
- 6860: use Json.mapper().getFactory() instead of creating a new JsonFactory StatusHeader.sendJson
- 6842: Fix mima issues in 2.5.x
- 6840: Fix compilation error on configError
- 6824: Handle null ConfigOrigins in Configuration.configError
- 6800: Create ValidatorFactory just once
- 6799: Added dependency on play.db.DBApi to play.db.jpa.DefaultJPAApi.JPAApiProvider
- 6780: Use correct classloader when loading logger configurator class (#6779)
- 6655: Fix path to activator in document
- 6665: Update ModuleDirectory.md
- 6768: Update to Akka 2.4.14, materializer is not public API and changed a bit (#6767)
- 6762: Rename ‘method’ to ‘field’ in java akka docs (#6751)
- 6714: Update Tutorials.md
Play 2.5.10 “Streamy”
Released 17 Nov 2016
- 6748: Update dependencies
- 6741: Update tutorials page
- 6726: uses the new trusty image for travis
- 6731: Fix Multipart form data parts with optional quotes
- 6730: Change deprecated ‘application.secret’ from docs
- 6711: Add bindings for Java i18n classes
- 6720: Fix documentation error (usage of noop setContentType)
- 6698: Parse IPv4-mapped IPv6 addresses in forward headers
- 6682: fixes the NettyIdleClientTimeoutSpec by removing the regex on the exception message
- 6684: Add Timeout trait to play.api.libs.concurrent (#6459)
- 6697: Add Play Pagelets
- 6693: documentation: clarify how the child actor get its name
- 6678: Use trampoline EC in Action#asJava
- 6673: Use the Akka ExecutionContext to execute actions
- 6669: Summarize the JSON package and provide relevant links
- 6619: Remove play-java dependency from filters-helpers
- 6668: Fix reference to default mappings in sbt-native-packager docs (#6664)
- 6637: De-emphasize activator in docs and refer to sample templates
- 6650: More clarifications to docs to explain how Play’s DI system works
- 6614: Do not suppress throwables on DefaultHttpErrorHandler initialization
Play 2.5.9 “Streamy”
Released 8 Oct 2016
- 6631: Backport documentation mappings
- 6594: [doc] Add example of using WS from main
- 6627: Updated Streaming HTTP responses documentation
- 6617: Update HikariCP to 2.5.1
- 6597: fix failed evolutions with query parameter
- 6587: Fix incorrect level header (#6585)
- 6553: Update JavaActionsComposition doc - Action.call doesn’t throw
- 6560: reverts matrix params in query strings
- 6564: Fix unsafe usage of WS client in tests
- 6575: Fixes #4695 (#6571)
Play 2.5.8 “Streamy”
Released 14 Sep 2016
- 6557: Upgrade HikariCP to 2.5.0
- 6539: Trim digest of asset after reading it. fixes #6538
- 6556: makes the documentation tests work again
- 6554: fixes some problems with query strings
Play 2.5.7 “Streamy”
Released 12 Sep 2016
- 6520: Document Default controller in routing docs
- 6531: Fixes serialization of big decimals to json (#6530)
- 6541: adds a note about h2 while developing
- 6534: fixes websockets on netty
- 6529: fixes the uri encoding/decoding with netty 4.0.40.Final
- 6521: Minor addition: adding the timeout type
- 6522: kills the jvm if there is an error
- 6515: Update templates plugins
- 6502: removes println messages from actorflow
- 6490: Update Installing.md
Play 2.5.6 “Streamy”
Released 23 Aug 2016
- 6481: Upgrade akka to 2.4.9
- 6477: Fix config file name in Clever Cloud deployment docs
- 6475: Fix minor typo in default templates
- 6457: Add more clarification to router docs
- 6470: stop hooks won’t be called when Play.stop(app) was called (#6469)
Play 2.5.5 “Streamy”
Released 18 Aug 2016
- 6458: fixes the 2.5.x branch
- 6441: Set content length when invoking action with a test body.
- 6455: Ensure that custom signature calculator works in Java
- 6453: Add tests of ServerResultUtils#validateResult to make sure an empty body is sent for 1xx, 204 and 304 responses
- 6452: Add note about HTTP execution context
- 6449: shutdown hooks will now be called correctly in dev mode (#6437)
- 6442: Add line breaks in examples to reduce horizontal scrolling (#6439)
- 6435: Fix #5384 - Support of generic case class for the JSON macros
- 6421: applied_at in evolutions filled as timestamp (#6420)
- 6409: Disallow users to send a message-body and Content-Length header field for 1xx, 204 and 304 responses
- 6407: fix #6131 (#6284)
- 6406: Clarify how encoding of parameters works in generated routes
- 6389: removed scalaz repository in play-scala template
- 6391: Closing leaked connection when there is a problem in checkEvolutionsDtate()
- 6392: [doc] Add SIRD routing documentation
- 6395: remove file log appenders from default configs - fixes #6361
- 6394: Add a delegating file part handler for Java (#6369)
- 6381: Avoid OutOfMemoryError when writing JSON BigDecimals
- 6375: Updated dependencies for 2.5.x
- 6374: Added advice for production env variables
- 6371: Fix HttpRequestHandler docs to add JavaHandlerComponents
- 6357: Add async try-with-resources for java api
- 6366: append fragment in Results.Redirect(call, status)
- 6362: Fixes #6351 made the parameter onClose of sendFile working again
- 6363: Append fragment (use Call.path instead of Call.url) when redirecting
- 6355: Update JavaRoutingDsl.md
- 6335: Add an example of the FakeRequest being explained
- 6346: Fixed incorrect config reference in scala doc #6341
- 6344: fix doc error
- 6337: Fix incorrect form mime types in documentation
- 6331: Clear up the ‘other’ files in AssetsLess.md
- 6327: Fix range result pattern match bug
- 6330: Fixed #6318 made the documentation about customizing a object mapper better
- 6326: Fixed #6271 removes PlayHttpContentDecompressor
- 6138: Add option to prevent Play from creating bound caches
- 6317: Fixed #6316 encoding will be applied to asXml
- 6272: Set Form value even when form has errors
- 6291: Don’t try to use minified asset in DEV mode
- 6273: Read play.editor via PLAY_EDITOR from environment variables as fallback
- 6311: Upgrade to Akka 2.4.8
- 6306: Backport for 2.5.x #6289: Apply Netty’s cookie encoder/decoder updates.
- 6274: Fixes #5838 by correcting pattern match on termination message
- 6283: Fix parsing in play.mvc.Result#charset()
- 6288: Validate charset when we send JSON results (#6287)
- 6281: Fix typo in documentation for WS
- 6257: Fixes #6152 by customizing the HttpContentDecompressor
- 6269: fix typo
- 5270: Update application.conf
- 6262: Fix version pattern
- 6256: Update 2.5.x dependencies
- 6249: Add Form mapping support for java.time Types
- 6241: Suggestion: validating bin compatibility with all the patch versions in 2.5 series
- 6233: update doc for play-json DefaultInstantReads
- 6243: remove logback depencency from iteratees. fix #6242
- 6238 modified: stream collector to generate properly typed array instead of casting array result
- 6239 Bump slf4j minor version to fix a memory leak issue (SLF4J-364)
Play 2.5.4 “Streamy”
Released 9 Jun 2016
- 6231: [doc] Backport tutorials
- 6230: Fix double-encoding of RequestBuilder params
- 6226: Build.scala import for routesGenerator configuration
- 6222: Updated to 2.5.x (play.routing.JavaScriptReverseRouter)
- 6216: added a warning inside the play ws ssl config parser (#6179)
- 6214: Clarify how to use evolutions with compile-time DI
- 6194: Fix generated to original source position mapping in dev mode
- 6206: Use the built in typesafe Repo resolver
- 6210: Better Result error handling
- 6208: Make sure constraints keep declaration order
- 6192: Properly set underlying request in AddCSRFToken
- 6130: Only display a constraints which matches a used validation group
- 6202: Add an example showing a custom FilePartHandler
- 6197: Fix reference to FrameFormatter
- 6201: update netty-reactive-streams to 1.0.6
- 6195: Properly forward the persistence unit name
- 6187: added some more documentation around Modules (#6185)
- 6150: jdbcdslog is now enabled at the connection pool / data source level
- 6169: Documentation fix: Action should not be static anymore
- 6170: Fixes #4796 disables jsse and adds a loose context for acceptAnyCertificate
- 6165: Negate predicate for logging media range parsing errors
- 6164: Close prepared statements in EvolutionsApi
- 6158: Add note pointing out that WebSocket does not implement SOP
- 6143: Fixed #6133 added some docs for routes provider
- 6160: Clean deprecation warnings in spec code
- 6155: Update the API for JDK 1.8 and add links
- 6154: Remove references to DB.getDatabase() from documentation
- 6148: Move environment definition into code example
- 6146: [doc] Replace invalid link to Jackson documentation (#5953)
- 6137: Add Play I18n HOCON module to module directory
- 6136: Add note about LoggerConfigurator with custom ApplicationLoader (#6136)
- 6134: Trim \r in PlayException interestingLines
- 6125: Group(s) in form should take an array/varargs
- 6005: Use logger.url system property for logger configuration
- 6122: docs: fix typos
- 6119: Supplier returns type; it does not take an argument
- 6114: Prefer constructor injection in documentation
- 6117: Provide helper for creating HttpFilters
- 6112: Simplify logback dependencies
- 6113: ErrorHandlers should be singletons in docs
- 6106: remove redunant call to deprecated API in TestingWebServices docs
- 6103: Fix @deprecated annotations
Play 2.5.3 “Streamy”
Released 27 April 2016
- 6050: Upgrade Akka to version 2.4.4
- 6051: Add withCookies to Java Result API
- 6052: Optional entity length for range requests
- 6053: Refactoring to use Java 8 streams API
- 6058: Do not add Content-Disposition header when serving assets
- 6068: Doc fix: Correctly look up validation errors in messages
- 6069: Fixed/improved ning deprecation messages
- 6072: Get host properly even if full URI is invalid
- 6077: Allow request filters to modify outbound request
- 6080: Update compile-time DI docs
- 6083: Handle null response headers
- 6087: Upgrade async-http-client to version 2.0.2
- 6092: Support non-ISO8859-1 filename in Content-Disposition header
- 6093: Trigger 400 error if path is null
- 6095: Don’t throw NPE when variables in a Form or a Field are null
Play 2.5.2 “Streamy”
Released 14 April 2016
- 5974: Add idleTimeout support for 2.5.x
- 5982: Better implementation of Accumulator.flatten
- 5984: Upgrade Akka to version 2.4.3
- 5995: Range requests support
- 6003: Made it possible to specify a Content-Length header for a StreamedBody
- 6009: Add check for play.editor setting
- 6022: Replace PushStage based methods with GraphStage in WebSocketHandler
- 6031: Don’t catch exceptions in LogbackLoggerConfigurator
- 6032: Fix header parsing in Akka server
- 6037: Upgrade AsyncHttpClient to 2.0.0
Play 2.5.1 “Streamy”
Released 29 March 2016
- 5860: Ensure data parts don’t take 5 seconds to parse
- 5963, 5899: Update netty-reactive-streams (Fixes 5821, 5874)
- 5926: Make sure Context is set for Java WebSocket methods
- 5856: Fix runtime injector provided by BuiltInComponents so that Crypto is injectable
- 5920: Fix default charset in Java FormUrlEncoded parser
- 5698: Add WS method for POSTing multipart/form-data
Play 2.5.0 “Streamy”
Released 4 March 2016
- Switched from iteratees to Akka streams for all asynchronous IO and streaming
- Replaced Play functional types such as
Promise
andOption
with Java 8 functional types such asCompletionStage
andOptional
- Introduced equivalent Java APIs for features that previously only existing in the Scala API, such as implementing filters and custom body parsers
- Increased performance by up to 20%
Highlights
Migration Guide
Full changelog
Play 2.4.11 “Damiya”
Released 10 Mar 2017
#7004: 204/304 response should also trigger onDoneEnumerating for the body
#7039: Fix build test
#7048: Fix dependency conflicts
Play 2.4.10 “Damiya”
Released 22 Jan 2017
- 6904: added httpcore dependency
Play 2.4.9 “Damiya”
Released 20 Jan 2017
- 6902: Upgrade Apache HTTP client
- 6213: Fix generated to original source position mapping in case of runtime error while running in dev mode
- 6824: Handle null ConfigOrigins in Configuration.configError
- 6595: 2.4.x Backport to fix issue #6272
- 6498: upgrade specs2 to 3.6.6
- 6480: Fix thread leak caused by idle-timeout support
- 6457: Add more clarification to router docs
- 6406: Clarify how encoding of parameters works in generated routes
- 6365: Append fragment (use Call.path instead of Call.url) when redirecting (#6363)
- 6269: fix typo
Play 2.4.8 “Damiya”
Released 22 June 2016
- 6260: Escape strings in JS reverse router
Play 2.4.7 “Damiya”
Released 20 June 2016
- 6223: Better result error handling
- 6240: Backport for 2.4.x #6235: Bump slf4j minor version to fix a memory leak issue (SLF4J-364)
- 6165: Negate predicate for logging media range parsing errors
- 6083: Handle null response headers
- 4860: Added SubTypesScanner to Reflections factory in Classpath
- 5612: Improve the case of when to display the logger configuration deprecation message
- 5764: Add zip protocol to isDirectory
- 5948: Add idleTimeout support for Netty
- 5945: Explicitly throw error when no application is in scope for Crypto
- 5940: Upgrade to AHC 1.9.36
- 5723: Make CORS filter treat http and https as different origins
- 5673: Update ProductionConfiguration.md
- 5692: Make Akka.system use the system field on app
- 5228: Only parse the form body on oauth sign
- 5629: Update 2.4.x to AHC 1.9.33
- 5623: Mockito is not included in build by default
- 5486: Keys.devSettings to PlayKeys.devSettings
- 5468: Fixed typo, missing word added
Play 2.4.6 “Damiya”
Released 14 December 2015
- 5326 Fixes to forward header parsing
- 5364 Build routes compiler library for Scala 2.11
- 5368 Allow CSRF to be configured with compile-time dependency injection
Play 2.4.5 “Damiya”
Unreleased
Play 2.4.4 “Damiya”
Released 19 November 2015
- Support infinite WS request timeouts
- Updated typetools version to support latest JDK
- Support for temporary files with compile-time dependency injection
- Use SHA256-RSA for self-signed certificates
- Exclude some transitive dependencies from Maven POM
- Improved Forward and X-Forwarded handling
Play 2.4.3 “Damiya”
Released 7 September 2015
- 2188 Allow Authenticator for Security.Authenticated to be injected
- 4649 Fixes for dev mode memory leaks
- 4834 Made Helpers.invokeWithContext static
- 4792 Netty upgrade from 3.10.3 to 3.10.4
- 4935 Scala JSON Reads for java.time.Instant
- 4939 Fix packaging when externalizeResources or executableScriptName settings are used
- 4940 Support for HikariCP connectionInitSql
- 4975 Akka-http upgrade from 1.0-RC2 to 1.0
- 5025 Demoted akka initialization logging to debug level
Play 2.4.2 “Damiya”
Released 3 July 2015
- 4498 Provide JsReadable.validateOpt to replace Option reads
- 4615 Post binary data as is with play-ws client
- 4707 Clean temporary files on app shutdown
- 4736 Fix non extraction of some webjars
- 4753 Ensure flash cookie cleanup doesn’t lose other cookies
Play 2.4.1 “Damiya”
Released 23 June 2015
- 3532 Don’t throw exceptions from Assets.versioned controller on Windows
- 4429 Ensure message source name is not ignored when messages are passed
- 4488 Support primitive types in CacheApi
- 4522 Exclude externalised resources from application jar
- 4523 Char binding for path/query string parameters in routes
- 4524 Ensure CORS headers get added to failed responses
- 4616 Ensure routes is initialised with the right context classloader
- 4633 Revert changes to Json.deepMerge
- 4648 Improved Call fragment support in form template helpers
- 4699 Ensure Default and ExternalAssets controllers are injectable
- 4704 Ensure entity too long errors go through error handler
- 4705 Add convenience method for handling various 4xx client errors
- 4706 Propogate Java Action context changes to controller
Play 2.4.0 “Damiya”
Released 26 May 2015
- Dependency injection out of the box.
- Testing is easier thanks to better support for mocking.
- It is now straightforward to embed Play in your application.
- You can now aggregate reverse routers from multiple projects.
- More Java 8 integration —- Java 8 is now required.
- Choice of standard project layout.
- Many new anorm features. Anorm is now its own project!
- Upgraded to Ebean 4. Ebean is (also) its own project!
- HikariCP is the default connection pool
- WS supports Server Name Identification (SNI).
Highlights
Migration Guide
Full changelog
Play 2.3.10
Released 3 August 2015
- 3459 Assets controller returns 404 for directories
- 4240 Disabled RC4 ciphers in default WS SSL configuration
- 4432 Fix cookie max age greater than 24 days regression
- 4719 Correctly parse content type in test helpers
Play 2.3.9
Released 8 May 2015
Vulnerabilities fixed
- CVE-2015-2156 Http only cookie bypass
Other changes
- 3484 Fix sub project run
- 2992 Fix IE11 websocket issues
- 4114 Ensure generated routes code doesn’t emit scalac warnings
- 2559 Allow routes parameters with default values to be scala keywords
- 4412 Upgrade to Netty 3.9.8
Play 2.3.8
Released 11 February 2015
- 3723 Upgrade async-http-client
- 3752 Commas in etag break browser caching
- 3771 Log http wire
- 3773 Do not reveal db password in log
- 3805 Updated Javassist to 3.19.0-GA
- 3811 Upgrade to sbteclipse 3.0.0 which has several bug fixes for issues reported by Play users
- Add forked development-mode run for integration with sbt server
Play 2.3.7
Released 3 December 2014
- 3304 Close a security hole by using https to fetch artifacts
- 3546 Handle multipart fields with colon inside
- 3563 Backport #3291: Anorm support for joda-time DateTime and Instant
- 3567 Backport #3243: Anorm: more column conversions
- 3582 Backport #3576: Add anorm support for parsing UUIDs from JDBC Strings
- 3584 Backport #3574: Anorm: more column integer conversions
- 3646 Support OpenJDK 6 in WS SSL
- 3692 Upgrade to jboss-logging 3.2.0
Play 2.3.6
Released 28 October 2014
- 3506 Correct group id and version of sbt-run-support sub project
- 3342 Ensure HttpExecutionContext calls delegates prepare method
- 3533 Ensure F.Option can be used in reverse routes
- 3514 Fix NPE for null values in JavaScript reverse router and provide missing binders
- 3508 Providing missing UUID JavaScript reverse router binder
- 2959 Anorm error handling improvements
- 3049 Reinstate Anorm Row extractor
- 3062 Provide Anorm column parser for JDBC array
Play 2.3.5
Released 7 October 2014
Vulnerabilities fixed
- CVE-2014-3630 XML External Entity exploit
Other changes
- 2767 Gracefully handle hostname cannot be verified HTTPS errors.
- 3471 Ensure AddCsrfToken provides original context.
Play 2.3.4
Released 1 September 2014
- 3298 Upgrade to Netty 3.9.3.
- 3349 Use URI instead of URL to parse Java WS URLs.
Play 2.3.3
Released 12 August 2014
- 1186 Don’t ignore logger configuration in application.conf in production
- 2620 Fix jnotify errors when SBT reloads
- 3037 Don’t ignore status code when sending files
- 3206 Fix SLF4J warnings in SBT
- 3216 Provide a default message for error.date key
- 3227 Make it possible to upgrade to sbt-web 1.1 to allow better multi module support for assets
- 3253 Upgrade to jshint 1.0.1
- 3269 Ensure Play uses a shared mutex for providing exclusiveness on the current application in integration tests
Play 2.3.2
Released 21 July 2014
- 2747 Support for advanced TCP socket options such as keep alive.
- 2905 Ensure assets changes don’t trigger reload of Play
- 2946 Ignore benign JNotify watch removal errors
- 3073 Ensure stability of ordering of reverse routes matching
- 3074 Remove double slashes from assets fingerprinting
- 3122 Remove dependence of Assets on Play.current
- 3129 Allow generating https URLs without a request object
- 3141 Don’t duplicate Content-Type header when explicitly set in WS
- 3173 Add support for JDK7 WatchService in dev mode
Upgrade notes
- On Windows and Linux on JDK7, Play now uses the JDK7 WatchService. This has some small differences from the old mechanism - JNotify. If the JNotify behaviour is preferred, this can be configured in
build.sbt
using:PlayKeys.playWatchService := play.sbtplugin.run.PlayWatchService.jnotify(Keys.sLog.value)
Alternatively, you can also use a pure SBT implementation, using:
PlayKeys.playWatchService := play.sbtplugin.run.PlayWatchService.sbt(pollInterval.value)
Note that while the JDK7 WatchService works on other platforms, including OSX, its use is not recommended for Play’s dev mode because on those platforms it simply polls the filesystem at a 2 second interval.
Play 2.3.1
Released 25 June 2014
- 2936 Fixed duplicate entry error when multiple sub projects depend on the same webjar
- 2967 Ensure SecurityHeadersFilter constructor doesn’t prevent Application from starting
- 2973 Use minified assets in production automatically if they exist
- 2986 Fixed deadlock in tests
- 3012 Update to latest Twirl
- 3044 Provided JavaScript literal binder for Assets
- 3050 Fixed reverse routing routes priority
- 3057 Fixed excessive reloading
- 3064 Fixed HEAD support in CSRF filter
- 3066 Upgraded to Netty 3.9.2 to fix a security vulnerability in the SSL support
Upgrade notes
- The behaviour of the Assets reverse router has changed, if minified versions of assets exist, it now returns a URL for those instead. To disable this behaviour, set
assets.checkForMinified=true
inapplication.conf
. - A change to the
SecurityHeadersFilter
constructor breaks binary compatibility. This was done because the old constructor signature could not be used for its intended purpose without breaking it.
Play 2.3.0
Released 30 May 2014
- Introducing the activator command. You can use activator exactly like you would use play, but Activator brings new features too. (More about the Activator change.)
- Better tooling for static assets. Play now uses sbt-web which gives faster asset processing, more features, and better extensibility.
- Support for Java 8 (and continued support for Java 6 and 7).
- Better Java performance. Simple Java controllers give 40–90% better throughput. (Thanks to YourKit for sponsoring licenses.)
- Support for Scala 2.11 (and continued support for Scala 2.10).
- Anorm enhancements: SQL string interpolation, multi-value parameters, new types, and more.
- Web Services enhancements: separate client, SSL configuration, and more.
- Play templates have become Twirl templates: separate project, new sbt plugin, still excellent integration with Play
- Actors for WebSockets
- Custom SSLEngine for HTTPS
- Asset performance: faster serving, better caching.
- One Result to rule them all: all the result types which were deprecated in 2.2 are now gone and only Result remains.
- Lots of bug fixes.
Highlights
Migration Guide
Full changelog
Play 2.2.5
Released 7 October 2014
- 3471 Ensure AddCsrfToken provides original context.
Play 2.2.4
Released 21 July 2014
- 2747 Support for advanced TCP socket options such as keep alive.
Play 2.2.3
Released 1 May 2014
Vulnerabilities fixed
- WebSockets Netty WebSocket denial of service vulnerability
Other changes
- 2508 Gracefully handle bad URIs in request by returning 400 errors.
- 2499 When validation fails for a Java form, don’t render duplicate repeat elements.
- 2535 Ensure exceptions thrown by JUnit get logged.
- 2509 Make WS SSL requests use a hostname verifier by default.
- 2683 Continuation frame handling for WebSockets
Play 2.2.2
Released 1 March 2014
Highlights:
- fixed an issue with the sbt-eclipse integration we had
- incremental compiler improvements
- Fixed a problem preventing New Relic from working when GZip filters were being used
- fixed an issue where javascript assets where being repeated in the project’s minified output
- sbt native packager updates
- Bonecp issue resolution around dropping connections
- update to Scala 2.10.3
- various bug fixes
A complete list of what was fixed for 2.2.2 can be found on GitHub
Play 2.2.1
Released 31 October 2013
- 830 - Integration tests now run out of the box in Eclipse
- 1159 - OAuth calculator no longer ignores query string
- 1704 - Fixed performance degradation with SQL queries in Play 2.2
- 1722 - Accept all WebSocket subprotocols
- 1734 - Reinstate custom token generator functionality in CSRF filter
- 1737 - Ensure CSRF filter can be instantiated without a running application
- 1750 - Fixed Promise.timeout exception handling
- 1778 - Fixed 505 body sending bug
- 1786 - Fixed closure compiler on windows - made the CommonJs functionality optional
- 1815 - Ensure echo is not disabled when play run finishes
- 1819 - Cache the result, not the iteratee in cached action
- 1841 - Ensured test results propogate to test runner
- 1856 - Ensure filters are executed when no handler is found
- 1898 - Upgrade bonecp to 0.8.0.RELEASE
Upgrade notes
- The signature of the CSRFFilter constructor has changed. Any code that used this previously should still be source compatible, but may need to be recompiled.
- CommonJS module support used to be provided by default when using the JavaScript compiler. It no longer is as there were problems with its support on Windows. CommonJS module support can be re-enabled by using a
commonJs
option for the JavaScript compiler.
Play 2.2.0
Released 20 September 2013
- New results structure for Java and Scala
- Better control over buffering and keep alive
- New action composition and action builder methods
- Improved Java Promise API
- Iteratee library execution context passing
- SBT 0.13 support
- New stage and dist tasks
- Built in gzip support
Play 2.1.5
Released 20 September 2013
Vulnerabilities fixed
- 20130920-XmlExternalEntity XML External Entity exploit
Other changes
- 1623 Fixed Netty deadlock when SSL is enabled
- 1356 Ignore spurious errors when max body length is exceeded
Play 2.1.4
Released 11 September 2013
Vulnerabilities fixed
- 20130911-XmlExternalEntity XML External Entity exploit
Other changes
- 1440 Play run hooks for monitoring tool integration
- 1451 Fixed the junit tests and have a test to make sure junit tests run
- 1055 Configurable HTTP request parameters - max request length, max header size, chunk size
- 1498 Prevent the setting of null cookie values
- 1496 Allow ehcache.xml to be overridden
Play 2.1.3
Released 06 August 2013
Vulnerabilities fixed
- 20130806-SessionInjection Session injection
Other changes
- 1329 Made If-None-Since and If-Modified-Since interaction spec compliant
- 1332 Fixed regression where SSE disconnects were not detected
- 1346, 1360 Fixed race conditions with Expect: 100-continue
- 1347 Changed URL path segment encoding to follow spec rather than use query string encoding
- 1359 Removed binary dependency on Akka 2.1; can now use Akka 2.2
- 1361 Fixed regression with Actions running in the wrong ExecutionContext
- 1370 Reduced memory used when pipelining
- 1402 Fixed memory leak on app reload in dev mode
- 1406 Upgraded junit-interface to 0.10
Play 2.1.2
Released 5 July 2013
- 810 - Fixed XPath.selectText regression
- 820, 1229 - Made matching of Accept-Language headers spec compliant
- 839 - Ensured application loading is not done on a Netty thread
- 851 - Ensured Java actions use the right context classloader
- 924 - Allowed charset parameter to have quotes
- 945 - Fixed HTTP pipelining support
- 959 - Ensured chunked and stream results terminate
- 978 - Safe handling of incorrectly encoded URL paths
- 984 - Support for config.resource system property in dev mode
- 1050 - Switched to Scala ForkJoin pool
- 1090 - Performance improvements
- 1152 - Fixed 100-continue support
Play 2.1.1
Released 13 April 2013
- Reverted changes to multipart/form-data API so that no file submitted can be easily detected
- Reverse router now escapes String path parameters
- Invalid escape combinations in the query string and path now return 400 errors
- Routes files that only contain includes now compile
- Javadoc generation is now working
- Compiled assets are no longer part of watched sources
- Fixed some compilation problems on Windows
- Improved routes helpers implementation
- 884 Play can once again handle file uploads greater than 2GB (this was a regression in Netty, fixed by upgrading to 3.6.3)
- 889 Performance/concurrency bottleneck fix for JSON serialisation in Scala
- 888 Fix Javascript reverse router default values
- JSON macro fixes and improvements
Play 2.1.0
Released 6 February 2013
- Migration to Scala 2.10
- Migration to Scala concurrent Futures
- Modularisation of Play itself
- Modularisation of routes files
- Better thread management and HTTP context propagation in Java projects
- Managed controller instantiation
- New Scala JSON API
- New Filter API with built in CSRF protection
- RequireJS support
- Content negotiation
- Improved Iteratee API
- 182 resolved bugs and improvements in our issue tracker:
Play 2.0.8
Released 20 September 2013
Vulnerabilities fixed
- 20130920-XmlExternalEntity XML External Entity exploit
Play 2.0.7
Released 11 September 2013
Vulnerabilities fixed
- 20130911-XmlExternalEntity XML External Entity exploit
Other changes
- 1502 Semicolon escaping in evolutions
- 1503 Configurable HTTP request parameters - max request length, max header size, chunk size
Play 2.0.6
Released 06 August 2013
Vulnerabilities fixed
- 20130806-SessionInjection Session injection
Play 2.0.5
Released 01 August 2013
- Fixed 100-continue behaviour
- Removed broken Jaxen dependencies
- Upgraded to Fluentlenium 0.8
- Fixed If-None-Match handling when releases are rolled back
- Configured timeouts and redirects for WS API
- Stopped plugins in reverse order to started
- Removed circular dependencies in dev mode ClassLoaders
Play 1.7.1
Released 13 June 2022
- #1397: Third party dependency update 20220403
- #1399: [1.7.0] Regression:
play idealize
dies withUnboundLocalError: local variable 'playHome' referenced before assignment
- #1400: fixed #1399 "UnboundLocalError: local variable ‘playHome’ referenced before assignment
- #1401: Python3 incompatibilities in module manipulations
- #1402: [#1401] 🐛 Fix python3 incompatibilities in module manipulation code
- #1403: Temporary class of Groovy template is output directly under application dir
- #1405: 1.7.0: concurrent modification exception
- #1406: [#1403] 🐛 Fix Groovy compilation unit that tries to write in applicat…
- #1408: #1405: replace HashMap be ConcurrentHashMap
- #1409: update check of java version
- #1411: Do not overwrite system property net.spy.log.LoggerImpl -> 1.7.1
- #1413: #1405: replace HashMap be ConcurrentHashMap
- #1414: Memcached implementaion broken due to log4j update
Play 1.7.0
Released 03 April 2022
- #1355: Play scripts upgrade to Python 3
- #1372: Updated dependencies and allow support for JDK 17 source
- #1377: [#1371] run on push envent
- #1383: Ability to disable database evolutions on a datasource basis
- #1384: [#1383] 🆕 Ability to disable database evolutions on a datasource basis
- #1385: [#1331] 🆕 Add new parameter jpda.address support
- #1387: make default jdk 11
- #1391: update hibernate up to 5.6.5
- #1393: [#1383] ♻ Support disabled evolutions for command line operations
- #1394: [#1353, #1355] update python 3
- #1353: python3 support or workaround
- #1371: Switch to GitHub Actions, Travis will be removed
- #1376: #1371 add github-actions.yml
- #1378: #1371 remove travis badge
- #1343: GitHub issue #1278: OrderBy support in simplified JPA queries for 1.5.x
- #1344: MultiDb: Additional documentation
- #1352: update hibernate up to 5.4.30.Final and its dependencies
- #1354: The temporary class of the template is output directly under the application dir.
- #1357: Cleanup code
- #1370: #1367 change log4j-1.2.17 to log4j-2.17.1
- #1373: Updated dependencies
- #1374: Fix travis build
- #1375: #1374 travis fix
- #1379: Fix pull request Pr/1238
- #1380: #1367 change log4j-1.2.17 to log4j-2.17.1
- #1382: fixed ‘play idea’ now is correctly for WSL Run GitHub Action on win and fixed test for Windows
- #1386: delete unused dependency
- #1389: Cleanup code
- #1395: [#1278, #1343] OrderBy support in simplified JPA queries for 1.5.x
- #1396: [1.7.0] add releasenotes-1.7.0.textile
Play 1.6.0
Released 15 March 2021
- #1308: Adds exit codes to play deps command
- #1313: #1313 upgrade deprecated MySQL driver
- #1314: #1313 upgrade deprecated MySQL driver
- #1320: * Java8 Date/Time Binder Support
- #1181: Avoid restoring of flash and session multiple times per request
- #1297: Custom SessionStore throws ClassNotFoundException
- #1306: update document url
- #1309: Upgrade java mail and commons email
- #1310: #1309: Upgrade java mail and commons email
- #1311: #1297 load session store using Play.classloader
- #1312: [#1312] stylesheet.tag missing trailing slash in documentation
- #1317: [#1316] Replace coma with comma
- #1322: [#4098] Make “play javadoc” fail if javadoc fails
- #1324: JDK 13/14 support
- #1325: JDK 13 support
- #1327: [#1935] Don’t create CPU*2 “New I/O worker” threads for unused ports
- #1332: Compatibility with JDK 13 and 14
- #1338: Update to latest Eclipse JDT Core v3.23 to enable JDK 14 source
- #1339: Bump junit from 4.11 to 4.13.1 in /samples-and-tests/customJars/example
- #1340: Update junit dependencies
- #1341: [31340] update jnit form 4.11 to 4.13.1
Play 1.5.3
Released 8 April 2019
- #1279: [#1262] Allow to override default fast tags with empty namespace
- #1290: hibernate 5.4 update
- #1292: Java 11 (JDT update)
- #1293: HikariCP: config property for init connection sql added
- #1156: [#2128] feature: help for module commands
- #1221: [#2155] Silent or suppressed errors in unittest PluginCollectionTest#skipsDuplicatePlugins
- #1222: [#2155] Silent or suppressed errors in unittest PluginCollectionTest#skipsDuplicatePlugins
- #1262: Play1.4.3 and newer not allow to override default FastTag.class (empty namespace) using @FastTags.Namespace("")
- #1281: Lighthouse#2273: Stop Fixtures attempting to set static (Map) fields
- #1287: Fix JPA version to match what Hibernate 5.3+ supports.
- #1294: Does not make sense to default MySQL character set and collation properties on connection URL
- #1295: Remove MySQL connection charset property defaults
- #1298: SslHttpServerContextFactory does not support private key only PEM content
- #1299: #1298: Handle only private key info from PEM
- #1300: Define allowed methods used in ‘X-HTTP-Method-Override’
- #1301: [#1300] feat: Define allowed methods used in ‘X-HTTP-Method-Override’
- #2128 : help for module commands like for core commands no tags
- #2155 : Silent or suppressed errors in unittest PluginCollectionTest#skipsDuplicatePlugins unittes
Play 1.5.2
Released 30 october 2018
- #1239: Feature/make play stop wait for java process to finish
- #1242: Add support for navigating XML with namespaces.
- #1250: dependencies upgrade
- #1252: Update Play source for build compability with JDK9+
- #1259: [#1849] restore checks in TransactionalJPATest that were accidentally deleted in PR 1246
- #1260: [#1252] revert back method to static. Fix calls to deprecated ’_’ metō
- #1263: upgrade hibernate to 5.3.x
- #1266: sample upgrade for issue #1263
- #1269: Add BigInteger binding
- #1198: 1197 support non-static dependencies
- #1204: allow adding multiple files to “play.plugins.descriptor”
- #1212: Wrong request-body decoding for content-type “application/x-www-form-urlencoded”
- #1213: [#1212] Fix non-Latin characters decode in UrlEncodedParser
- #1217: [play 1.5] documentation is missing
- #1230: [#2170] Action context access from error templates
- #1241: [#2086] Fix race in Promise.onRedeem() that called “callback” twice
- #1245: fix(tests): issue #1200, added testing compatibility for jdk9+
- #1246: [#1849] Exceptions from controllers are not detected in FunctionalTests
- #1247: upgraded javassist to 3.23.1-GA to suppress warning with JDK9+
- #1248: Additions for PR https://github.com/playframework/play1/pull/1246
- #1254: #1250 dependencies upgrade
- #1255: fix(tests): issue #1200, added testing compatibility for jdk9+
- #1256: [#1245] Fix public/protected testing with Javassist, by removing the workaround that was fixed in latest version of javassist
- #1257: [#1239] make play stop wait for java process to finish
- #1258: [#1849] Give tests more fine grained control over what exceptions they expect
- #1270: Release of 1.5.2 ?
- #1275: [#1270] doc(release): add documentation for play 1.5.2
Play 1.5.1
Released 17 july 2018
- #2173: Add LocalDateTime binder
- #1133: Allow customization of @CacheFor cache key
- #1186: [#2138]enhance the function for the injector (Add the injectable interface)
- #1193: Update select.tag to support “null” option of select with attribute “showEmpty: true”
- #1232: Update HikariCP to 2.7.9
- #1233: [#1232] feat(libs)/ update hikari CP from 2.6.3 to 2.7.9
- #1158: [#1896] fix play daemon stacktrace on [re]start-stop
- #1166: Allow customization of @CacheFor cache key
- #1192: Update Configuration.java
- #1208: [#2140] Make FunctionalTest compatible with Response.writeChunk()
- #1219: [#2154] fix NPE on @On annotation
- #2154: fix NPE on @On annotation
- #1220: [#2154, #1219] Fixes NPE for @On annotation
- #1223: [#1823] Fix play.exceptions.CompilationException (fix for the fix #786)
- #1224: [#1823] Fix play.exceptions.CompilationException (fix for the fix #786)
- #1225: PlayController implemented
- #1226: #1237 Use secure websocket protocol for secure pages
- #1228: Fixing spelling mistake (runing -> running)
- #1229: 1228 fix spellling mistake
- #1237: Do not allow mixed-content WebSockets
- #1910: Stacktrace when running play start with existing pid but no process
- #1896: play daemon [re]start-stop (python traceback)
- #2140: Chunked responses are not testable by FunctionalTest
- #1244: Prepare release 1.5.1
Play 1.5.0
Released 29 September 2017
- #1113 : Upgrade Hibernate to 5.x
- #1100 : Add support for non-static @Before and @After methods
- #1142 : Make names of modules short (without version number)
- #994 : Use HikariCP instead of c3p0 connection pool improvement
- #1162 : Play should search play.plugins descriptor in application path
- #1145, #1126 : Fix problem of module installation
- #1137 : Make it possible to load plugins from single
play.plugins
- #1115 : Fix javadoc warning documentation
- #1112 : Allow to limit the size of whole request or the size of one uploaded file in a request.
- #1111 : Websockets documentation
- #1105 : Play calls action method in parent class instead of child class
- #1103 : Make it possible to exclude DocViewer in dev mode
- #1097 : Support for Java8 parameters instead of slow additional enhancement in LocalvariablesNamesEnhancer.
- #1096 : Drop support for java version prior to 1.8 documentation
- #1095 : Allow custom implementation of base Controller
- #1043 : Use
-parameters
compiler option instead of enhancing classes - #2122 : FastTagsTest: Comparison Failure: differences only in line separators tests
- #2125 : testLogLevelsAndLog4jConfig TIMEOUT waitFor ‘I am a debug message’ tests
- #2089 : Upgrade dependencies dependencies libraries libs
- #2124 : Import Error: No module named unittest pythons
- #1188, #2126 : MessagesTest.class testMessageInAnotherLanguage test testing testrunner tests
- #2123 : framework\build.xml:264: Execute failed: java.io.IOException: Cannot run program “python”: CreateProcess error=2 python
- #2130 : remove annoying log messages from autotest logs tests
- #2131 : update travis for new worker test testing tests
- #2079 : dependencies install on windows fails if yml defines source and target the same dependencies files
- #1191 : Fix deps documentation
- #1190 : create a default constructor for
play.mvc.results.Forbidden
- #2123, #1187 : Cannot run program “python”: CreateProcess error=2
- #1180 : Make it possible to change session store implementation
- #1159, #2089 : upgrade bouncycastle
- #1155 : fix loaded entity classes in hibernate from #1114
- #1152 :finds classes in precompiled folder too
- #1144 , #1142 : use “application.statusKey” instead of “application.secret”
- #2121 : JPABase.equals() invokes _key() before checking null/ref equality
- #2120 : Add support for (special) hibernate properties through application
- #1138 : Make it possible to load plugins from single
play.plugins
file
Play 1.4.6
Released 8 April 2019
- #1301: [#1300] feat: Define allowed methods used in ‘X-HTTP-Method-Override’
Play 1.4.5
Released 29 September 2017
Play 1.4.4
Released 24 January 2017
- #1007 Calculate template rendering time, so it can be logged/profiled
- #983 feat(DependenciesManager): sync option should be ON by default.
- #2072 add method Binder.unregister()
- #2071 Precompile additional templates
- #1007 Calculate template rendering time, so it can be logged/profiled
- #1005 feat(fixture): add id/type in log when loading a fixture file throw exception
- #1009 fix(templates): not log error and exception when compiling a template with a non GroovyInlineTag
- #1014 chore(travis): fix buffer overflow exception
- fix h2.jar binary
- #995 use hamcrest-all 1.3 instead of hamcrest-core 1.3
- #1011 upgrade to cglib 3.2.4
- #1008 fix(ConfigurationChangeWatcherPlugin): initialized configLastModified on application start
- #2066 fix open file on 500 error pages for modules
- #998 fix(router): allow to have space when defining static args in routes
- #1025 fix(DB): Detect changed for JNDI datasource which using jndi: prefix
- #2068 chore(lib): dependency upgrade: joda-time (2.9.4 -> 2.9.5)
- #1024 Default application.path to working directory
- #1090 Fix performance issue in classloader
- #2074 Dependency upgrade: joda-time (2.9.6 -> 2.9.7)
- #1067 test(tag): add demo and test for used of #{set} and #{get}
- #1090 add method RenderJson.getResponse()
- #1070 Avoid reflection and make the default list of enhancers overridable
- #1040 Avoid reflection and make the default list of enhancers overridable
- #1064 [#1064] fix(messages): add some test on parameters to avoid NullpointerException
- #1064 Initialize play static field early
- #1061 Methods marked with
@Catch(Throwable.class)
catch allResults
- #1058 Improve performance of RenderJson
- #1056 Add getters to all
Result
subclasses - #1051 Play dependencies silently resolve not found dependencies
- #1033 add possibility to disable generating getters/setters
- #1025 Detect changed for JNDI datasource which using jndi: prefix and its documentation
- #2066 Avoid NPE in regex matcher
- #1919 fixes Building modules with a space in path under windows fails
- #2066 fix(router): allow to have space when defining static args in routes
- #998 fix open file on 500 error pages for modules
- #2066 fix open file on 500 error pages for modules
- #1005 add id/type in log when loading a fixture file throw exception
- #998 Routes ‘Assign static args’ only work for first argument
- #985 Play should NOT clear cache after every code change
Play 1.4.3
Released 16 August 2016
- #2040 ConcurrentModificationException in GroovyTemplateCompiler.endTag
- #2042 Upgrade dependencies
- #2044 support empty values in validation error
arguments - #2049 Some resultsets are not close in Evolutions causing some leak
- #2050 Update dep for netty and async-http
- #2051, #1667 Avoid to call @Util and @Catch controller methods directly using a http request
- #2055 Upgrade dependency joda-time (from 2.9.2 to 2.9.4)
- #2056 Upgrade Groovy to 2.4.7
- #2057 Remove dependency on commons-collections
- #2052 session.put() works incorrectly with null objects
- #2058 KeyError: ‘disable_random_jpda’ in application.check_jpda
- #984 Play framework should log every time when application restart happens (in dev mode)
- #982
play build-module
command should exit with error code if build failed - fix UnexpectedException.getErrorDescription(): write error message in any case
- #2059 Rework place of release note of documentation
- Upgrade Apache Ant 1.9.6 -> 1.9.7
- #987 Don’t swallow exceptions in binder
- #2048 upgrade to cglib 3.2.2
- #986 Update selenium to 2.53
- #2053 flash method should handle value as a key message
Play 1.4.2
Released 16 March 2016
Vulnerabilities fixed
- 20160301-XssSecureModule XSS vulnerability in the Secure module login page.
Other changes
- #2008 Error while binding an EnumSet
- #2011 Support “double semicolon” escaping in evolution scripts
- #2007 JPA classloader issues with precompiled app
- #2014 Message not appear corretly in secure module
- #1939 chore(lib): Update to groovy from 2.3.9 to 2.4.5
- #1934 feat(controller): Support for non-static controller methods - they are easier to mock/unit-test
- #2009 Field name detection in ‘attachment’
- #2017 Use StringBuilder instead of StringBuffer
- #2016 default value of “XForwardedOverwriteDomainAndPort” setting should be false
- #1979 Improve performance of Play!
- #2021 Optimize usage of StringBuilder
- #2022 Add missing @Override annotations
- #2020 Avoid multiple creation of new arrays/maps
- #2029 Upgrade to groovy 2.4.6
- #2027 Cache method Lang.getLocale()
- #2015 i18n tag only restore the first % character
- #2034 add hibernate-ehcache jar to be able to use ehcache as second level cache
- #2026 Blob: missing methods implemented to support (2nd level) caching
- #1947 Job::withinFilter Only Calls First PlayPlugin Filter It Finds. (Invoker Calls All Filters)
- #1948 Invoker.Invocation::run executes action once per plugin
- #2035 MakeWS.getString() returning same result on every call
- #2019 Make method Cache.clear() null-safe
- #2018 Class caches added
- #2036 Force secure reverse routes config
- #2039 Update some libraires
Play 1.4.1
Released 30 December 2015
Vulnerabilities fixed
- 20151230-SessionHijack Session hijack
Other changes
- Add PATCH support
- Update to htmlUnit v 2.19
- Add ability to define enabled ssl protocols
- Make DB properties configurable
- Fix putting property to customer DB configuration
- Add method Plugin.onActionInvocationFinally()
- Fix javadoc tools errors
Play 1.4.0
Released 30 October 2015
- Compatible Java 7. No longer support for Java 6
- Upgrade to async-http-client v1.9.31
- Upgrade to netty 3.10.4
- Update HtmlUnit to v2.16
Play 1.3.4
Released 16 March 2016
Vulnerabilities fixed
- 20160301-XssSecureModule XSS vulnerability in the Secure module login page.
Other changes
- #2008 Error while binding an EnumSet
- #2011 Support “double semicolon” escaping in evolution scripts
- #2007 JPA classloader issues with precompiled app
- #2014 Message not appear corretly in secure module
- #1934 feat(controller): Support for non-static controller methods - they are easier to mock/unit-test
- #2009 Field name detection in ‘attachment’
- #2017 Use StringBuilder instead of StringBuffer
- #2016 default value of “XForwardedOverwriteDomainAndPort” setting should be false
- #1979 Improve performance of Play!
- #2021 Optimize usage of StringBuilder
- #2022 Add missing @Override annotations
- #2020 Avoid multiple creation of new arrays/maps
- #2027 Cache method Lang.getLocale()
- #2015 i18n tag only restore the first % character
- #2034 add hibernate-ehcache jar to be able to use ehcache as second level cache
- #2026 Blob: missing methods implemented to support (2nd level) caching
- #1947 Job::withinFilter Only Calls First PlayPlugin Filter It Finds. (Invoker Calls All Filters)
- #1948 Invoker.Invocation::run executes action once per plugin
- #2035 MakeWS.getString() returning same result on every call
- #2019 Make method Cache.clear() null-safe
- #2018 Class caches added
- #2036 Force secure reverse routes config
Play 1.3.3
Released 30 December 2015
Vulnerabilities fixed
- 20151230-SessionHijack Session hijack
Other changes
- Add ability to define enabled ssl protocols
- Make DB properties configurable
- Fix putting property to customer DB configuration
- Add method Plugin.onActionInvocationFinally()
- Fix javadoc tools errors
Play 1.3.2
Released 30 October 2015
- Add ability to define the timeout in testRunner module
- Add ability to manually set the VirtualHost of WS
- Improve performance of Router.reverse()
- Allow upload a 0B file
- add ‘–server’ arg to install command commands python to specify just ONE custom repository for module installation
- Fix redirect to wrong domain and port behind apache
- Customize JSON rendering by passing the Gson serializer object json render
- Getting Static Initialization Deadlock in class DataParser dataparser
- Allow zero-length blobs binder
- OpenID discovery fails in 1.3.x in some cases openid
- Problem to run specific tests selenium testrunner tests
- 500.html template rendering issue
- play.libs.image.crop don’t close the OutputStream image
Play 1.3.0
Released 15 January 2015
- Fixed multiple continuations/await bugs
- Fixed multiple test bugs (auto-test/async/htmlunit)
- Numerous libraries upgraded (a.o. netty, hibernate, etc)
- Numerous i18n fixes
- Experimental java 8 support (however, hibernate does not support it, so some edge cases might now work)
- Improved intellij support
- Multiple databases support
- Customisable netty pipeline
- Customisable template name resolving
- Introduce filters in the plugin API
- Project documentation viewer in dev mode
- Improved Job support – added afterRequest() support
- Improved Mailer
Migration notes
- Java 1.5 is no longer supported
- Modules dependencies resolution change from https://www.playframework.org to https://www.playframework.com
- Run ‘play deps’ to make sure your dependencies are up-to-date
Known issues
- Cobertura does not work
Play 1.2.6.2
Released 30 December 2015
Vulnerabilities fixed
- 20151230-SessionHijack Session hijack
Play 1.2.5.6
Released 30 December 2015
Vulnerabilities fixed
- 20151230-SessionHijack Session hijack