All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.scalatra.Initializable.scala Maven / Gradle / Ivy

There is a newer version: 3.0.0-M5-javax
Show newest version
package org.scalatra

import javax.servlet.ServletContext

/**
 * Trait representing an object that can't be fully initialized by its
 * constructor.  Useful for unifying the initialization process of an
 * HttpServlet and a Filter.
 */
trait Initializable {
  type ConfigT

  trait Config {
    def context: ServletContext
    def getInitParameterOption(key: String): Option[String]
  }
  protected implicit def configWrapper(config: ConfigT): Config

  /**
   * A hook to initialize the class with some configuration after it has
   * been constructed.
   *
   * Not called init because GenericServlet doesn't override it, and then
   * we get into https://lampsvn.epfl.ch/trac/scala/ticket/2497.
   */
  def initialize(config: ConfigT): Unit

  /**
   * A hook to shutdown the class.  Bridges the gap between servlet's
   * destroy and filter's destroy.
   */
  protected def shutdown(): Unit = {}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy