Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 4 additions & 9 deletions core/play/src/main/scala/play/api/Application.scala
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@ import java.io.*
import akka.actor.ActorSystem
import akka.actor.CoordinatedShutdown
import akka.stream.Materializer
import javax.inject.Inject
import javax.inject.Singleton
import play.api.http.*
import play.api.inject.ApplicationLifecycle
import play.api.internal.libs.concurrent.CoordinatedShutdownSupport
Expand Down Expand Up @@ -110,8 +108,7 @@ trait Application:
*/
def stop(): Future[?]

@Singleton
class DefaultApplication @Inject() (
class DefaultApplication(
override val environment: Environment,
applicationLifecycle: ApplicationLifecycle,
override val configuration: Configuration,
Expand Down Expand Up @@ -140,7 +137,7 @@ class DefaultApplication @Inject() (
errorHandler,
actorSystem,
materializer,
new CoordinatedShutdownProvider(actorSystem, applicationLifecycle).get
CoordinatedShutdownProvider.build(actorSystem, applicationLifecycle)
)

override def path: File = environment.rootPath
Expand Down Expand Up @@ -234,7 +231,7 @@ trait BuiltInComponents extends AkkaComponents with AkkaTypedComponents:
coordinatedShutdown
)

lazy val cookieSigner: CookieSigner = new CookieSignerProvider(httpConfiguration.secret).get
lazy val cookieSigner: CookieSigner = new DefaultCookieSigner(httpConfiguration.secret)

lazy val tempFileReaper: TemporaryFileReaper =
new DefaultTemporaryFileReaper(
Expand All @@ -244,9 +241,7 @@ trait BuiltInComponents extends AkkaComponents with AkkaTypedComponents:
lazy val tempFileCreator: TemporaryFileCreator =
new DefaultTemporaryFileCreator(applicationLifecycle, tempFileReaper, configuration)

lazy val fileMimeTypes: FileMimeTypes = new DefaultFileMimeTypesProvider(
httpConfiguration.fileMimeTypes
).get
lazy val fileMimeTypes: FileMimeTypes = new DefaultFileMimeTypes(httpConfiguration.fileMimeTypes)

// NOTE: the following helpers are declared as protected since they are only meant to be used inside BuiltInComponents
// This also makes them not conflict with other methods of the same type when used with Macwire.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
package controllers

import java.io.*
import javax.inject.Inject
import play.api.*
import play.api.http.FileMimeTypes
import play.api.mvc.*
Expand All @@ -28,7 +27,7 @@ import scala.concurrent.Future
* GET /assets/\uFEFF*file controllers.ExternalAssets.at(path="relativeToYourApp", file)
* }}}
*/
class ExternalAssets @Inject() (environment: Environment)(using
class ExternalAssets(environment: Environment)(using
ec: ExecutionContext,
fileMimeTypes: FileMimeTypes
) extends ControllerHelpers:
Expand Down
14 changes: 3 additions & 11 deletions core/play/src/main/scala/play/api/http/FileMimeTypes.scala
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,6 @@
package play.api.http

import java.util.Locale
import javax.inject.Inject
import javax.inject.Provider
import javax.inject.Singleton

import scala.annotation.implicitNotFound

Expand All @@ -29,7 +26,7 @@ import scala.annotation.implicitNotFound
* In a controller, an implicit FileMimeTypes object can either be defined explicitly:
*
* {{{
* class MyController @Inject()(implicit val fileMimeTypes: FileMimeTypes) extends BaseController {
* class MyController(implicit val fileMimeTypes: FileMimeTypes) extends BaseController {
* def sendFile() = ...
* }
* }}}
Expand All @@ -38,7 +35,7 @@ import scala.annotation.implicitNotFound
* available from [[play.api.mvc.ControllerComponents]], meaning that no explicit import is required:
*
* {{{
* class MyController @Inject()(val controllerComponents: ControllerComponents) extends BaseController {
* class MyController(val controllerComponents: ControllerComponents) extends BaseController {
* def sendFile() = ...
* }
* }}}
Expand All @@ -58,15 +55,10 @@ trait FileMimeTypes:
*/
def forFileName(name: String): Option[String]

@Singleton
class DefaultFileMimeTypesProvider @Inject() (fileMimeTypesConfiguration: FileMimeTypesConfiguration)
extends Provider[FileMimeTypes]:
lazy val get = new DefaultFileMimeTypes(fileMimeTypesConfiguration)

/**
* Default implementation of FileMimeTypes.
*/
class DefaultFileMimeTypes @Inject() (config: FileMimeTypesConfiguration) extends FileMimeTypes:
class DefaultFileMimeTypes(config: FileMimeTypesConfiguration) extends FileMimeTypes:

/**
* Retrieves the usual MIME type for a given file name
Expand Down
40 changes: 0 additions & 40 deletions core/play/src/main/scala/play/api/http/HttpConfiguration.scala
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@ package play.api.http

import com.typesafe.config.ConfigMemorySize

import javax.inject.Inject
import javax.inject.Provider
import javax.inject.Singleton
import org.slf4j.LoggerFactory
import play.api.*
import play.api.libs.Codecs
Expand Down Expand Up @@ -314,40 +311,3 @@ object HttpConfiguration:
* For calling from Java.
*/
def createWithDefaults() = apply()

@Singleton
class HttpConfigurationProvider @Inject() (configuration: Configuration, environment: Environment)
extends Provider[HttpConfiguration]:
lazy val get = fromConfiguration(configuration, environment)

@Singleton
class ParserConfigurationProvider @Inject() (conf: HttpConfiguration) extends Provider[ParserConfiguration]:
lazy val get = conf.parser

@Singleton
class CookiesConfigurationProvider @Inject() (conf: HttpConfiguration)
extends Provider[CookiesConfiguration]:
lazy val get = conf.cookies

@Singleton
class SessionConfigurationProvider @Inject() (conf: HttpConfiguration)
extends Provider[SessionConfiguration]:
lazy val get = conf.session

@Singleton
class FlashConfigurationProvider @Inject() (conf: HttpConfiguration) extends Provider[FlashConfiguration]:
lazy val get = conf.flash

@Singleton
class ActionCompositionConfigurationProvider @Inject() (conf: HttpConfiguration)
extends Provider[ActionCompositionConfiguration]:
lazy val get = conf.actionComposition

@Singleton
class FileMimeTypesConfigurationProvider @Inject() (conf: HttpConfiguration)
extends Provider[FileMimeTypesConfiguration]:
lazy val get = conf.fileMimeTypes

@Singleton
class SecretConfigurationProvider @Inject() (conf: HttpConfiguration) extends Provider[SecretConfiguration]:
lazy val get: SecretConfiguration = conf.secret
10 changes: 0 additions & 10 deletions core/play/src/main/scala/play/api/http/HttpErrorHandler.scala
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

package play.api.http

import javax.inject.*
import play.api.*
import play.api.http.Status.*
import play.api.libs.typedmap.TypedKey
Expand Down Expand Up @@ -65,7 +64,6 @@ case class HttpErrorConfig(showDevErrors: Boolean = false, playEditor: Option[St
* handler can't be found. This is a lazy parameter, to avoid circular dependency issues, since the router
* may well depend on this.
*/
@Singleton
class DefaultHttpErrorHandler(
config: HttpErrorConfig = HttpErrorConfig(),
router: => Option[Router] = None
Expand All @@ -90,14 +88,6 @@ class DefaultHttpErrorHandler(
router
)

@Inject
def this(
environment: Environment,
configuration: Configuration,
router: Provider[Router]
) =
this(environment, configuration, Some(router.get))

/**
* Invoked when a client error occurs, that is, an error in the 4xx series.
*
Expand Down
10 changes: 3 additions & 7 deletions core/play/src/main/scala/play/api/http/HttpRequestHandler.scala
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@

package play.api.http

import javax.inject.Inject
import javax.inject.Provider

import play.api.http.Status.*
import play.api.libs.streams.Accumulator
import play.api.mvc.*
Expand Down Expand Up @@ -51,14 +48,13 @@ object NotImplementedHttpRequestHandler extends HttpRequestHandler:
* [[JavaCompatibleHttpRequestHandler]] is the default one, in order to provide support for Java actions.
*/
class DefaultHttpRequestHandler(
router: Provider[Router],
router: () => Router,
errorHandler: HttpErrorHandler,
configuration: HttpConfiguration,
filters: Seq[EssentialFilter]
) extends HttpRequestHandler:
@Inject
def this(
router: Provider[Router],
router: () => Router,
errorHandler: HttpErrorHandler,
configuration: HttpConfiguration,
filters: HttpFilters
Expand Down Expand Up @@ -169,4 +165,4 @@ class DefaultHttpRequestHandler(
* A handler to handle the request, if one can be found
*/
def routeRequest(request: RequestHeader): Option[Handler] =
router.get().handlerFor(request)
router().handlerFor(request)
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@ import java.util.concurrent.CompletionStage
import java.util.concurrent.ConcurrentLinkedDeque

import akka.Done
import javax.inject.Inject
import javax.inject.Singleton
import play.api.Logger

import scala.annotation.tailrec
Expand Down Expand Up @@ -44,9 +42,8 @@ import scala.util.Try
*
* {{{
* import play.api.inject.ApplicationLifecycle
* import javax.inject.Inject
*
* class SomeDatabase @Inject() (applicationLifecycle: ApplicationLifecycle) {
* class SomeDatabase(applicationLifecycle: ApplicationLifecycle) {
*
* private val connectionPool = new SomeConnectionPool()
* applicationLifecycle.addStopHook { () =>
Expand Down Expand Up @@ -96,8 +93,7 @@ trait ApplicationLifecycle:
/**
* Default implementation of the application lifecycle.
*/
@Singleton
class DefaultApplicationLifecycle @Inject() () extends ApplicationLifecycle:
class DefaultApplicationLifecycle() extends ApplicationLifecycle:
private val logger = Logger(getClass)
private val hooks = new ConcurrentLinkedDeque[() => Future[?]]()

Expand Down
1 change: 0 additions & 1 deletion core/play/src/main/scala/play/api/libs/EventSource.scala
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import play.api.libs.json.JsValue
* {{{
* import java.time.ZonedDateTime
* import java.time.format.DateTimeFormatter
* import javax.inject.Singleton
* import akka.stream.scaladsl.Source
* import play.api.http.ContentTypes
* import play.api.libs.EventSource
Expand Down
24 changes: 2 additions & 22 deletions core/play/src/main/scala/play/api/libs/Files.scala
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,6 @@ import java.time.Clock
import java.time.Instant
import java.util.stream

import javax.inject.Inject
import javax.inject.Provider
import javax.inject.Singleton
import akka.actor.ActorSystem
import akka.actor.Cancellable
import com.google.common.base.FinalizablePhantomReference
Expand Down Expand Up @@ -248,8 +245,7 @@ object Files:
* application stop. Note that this will not clean up the filesystem if the application / JVM terminates
* abnormally.
*/
@Singleton
class DefaultTemporaryFileCreator @Inject() (
class DefaultTemporaryFileCreator(
applicationLifecycle: ApplicationLifecycle,
temporaryFileReaper: TemporaryFileReaper,
conf: Configuration
Expand Down Expand Up @@ -335,8 +331,7 @@ object Files:
trait TemporaryFileReaper:
def updateTempFolder(folder: Path): Unit

@Singleton
class DefaultTemporaryFileReaper @Inject() (
class DefaultTemporaryFileReaper(
actorSystem: ActorSystem,
config: TemporaryFileReaperConfiguration
) extends TemporaryFileReaper:
Expand Down Expand Up @@ -448,21 +443,6 @@ object Files:
*/
def createWithDefaults() = apply()

@Singleton
@deprecated(
"On JDK8 and earlier, Class.getSimpleName on doubly nested Scala classes throws an exception. Use Files.TemporaryFileReaperConfigurationProvider instead. See https://github.com/scala/bug/issues/2034.",
"2.6.14"
)
class TemporaryFileReaperConfigurationProvider @Inject() (configuration: Configuration)
extends Provider[TemporaryFileReaperConfiguration]:
lazy val get: TemporaryFileReaperConfiguration = fromConfiguration(configuration)

@Singleton
class TemporaryFileReaperConfigurationProvider @Inject() (configuration: Configuration)
extends Provider[TemporaryFileReaperConfiguration]:
lazy val get: TemporaryFileReaperConfiguration =
TemporaryFileReaperConfiguration.fromConfiguration(configuration)

/**
* Creates temporary folders using java.nio.file.Files.createTempFile.
*
Expand Down
Loading