Moving EmbeddedAppServer to akka-http and closing #451
This commit is contained in:
parent
ea5f21457a
commit
29a901b515
2 changed files with 2 additions and 1 deletions
|
|
@ -1,72 +0,0 @@
|
|||
/**
|
||||
* Copyright (C) 2009-2010 Scalable Solutions AB <http://scalablesolutions.se>
|
||||
*/
|
||||
|
||||
package se.scalablesolutions.akka.kernel
|
||||
|
||||
import javax.ws.rs.core.UriBuilder
|
||||
import javax.servlet.ServletConfig
|
||||
import java.io.File
|
||||
|
||||
import se.scalablesolutions.akka.actor.BootableActorLoaderService
|
||||
import se.scalablesolutions.akka.util.{Bootable, Logging}
|
||||
import se.scalablesolutions.akka.comet.AkkaServlet
|
||||
|
||||
import org.eclipse.jetty.xml.XmlConfiguration
|
||||
import org.eclipse.jetty.server.{Handler, Server}
|
||||
import org.eclipse.jetty.server.handler.{HandlerList, HandlerCollection, ContextHandler}
|
||||
|
||||
/**
|
||||
* Handles the Akka Comet Support (load/unload)
|
||||
*/
|
||||
trait EmbeddedAppServer extends Bootable with Logging {
|
||||
self : BootableActorLoaderService =>
|
||||
|
||||
import se.scalablesolutions.akka.config.Config._
|
||||
|
||||
val REST_HOSTNAME = config.getString("akka.rest.hostname", "localhost")
|
||||
val REST_PORT = config.getInt("akka.rest.port", 9998)
|
||||
|
||||
protected var server: Option[Server] = None
|
||||
|
||||
abstract override def onLoad = {
|
||||
super.onLoad
|
||||
if (config.getBool("akka.rest.service", true)) {
|
||||
log.info("Attempting to start Akka REST service (Jersey)")
|
||||
|
||||
System.setProperty("jetty.port",REST_PORT.toString)
|
||||
System.setProperty("jetty.host",REST_HOSTNAME)
|
||||
System.setProperty("jetty.home",HOME.getOrElse(throwNoAkkaHomeException) + "/deploy/root")
|
||||
|
||||
val configuration = new XmlConfiguration(
|
||||
new File(HOME.getOrElse(throwNoAkkaHomeException) + "/config/microkernel-server.xml").toURI.toURL)
|
||||
|
||||
server = Option(configuration.configure.asInstanceOf[Server]) map { s => //Set the correct classloader to our contexts
|
||||
applicationLoader foreach { loader =>
|
||||
//We need to provide the correct classloader to the servlets
|
||||
def setClassLoader(handlers: Seq[Handler]): Unit = {
|
||||
handlers foreach {
|
||||
case c: ContextHandler => c.setClassLoader(loader)
|
||||
case c: HandlerCollection => setClassLoader(c.getHandlers)
|
||||
case _ =>
|
||||
}
|
||||
}
|
||||
setClassLoader(s.getHandlers)
|
||||
}
|
||||
//Start the server
|
||||
s.start()
|
||||
s
|
||||
}
|
||||
log.info("Akka REST service started (Jersey)")
|
||||
}
|
||||
}
|
||||
|
||||
abstract override def onUnload = {
|
||||
super.onUnload
|
||||
server foreach { t => {
|
||||
log.info("Shutting down REST service (Jersey)")
|
||||
t.stop()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -9,6 +9,7 @@ import se.scalablesolutions.akka.remote.BootableRemoteActorService
|
|||
import se.scalablesolutions.akka.actor.BootableActorLoaderService
|
||||
import se.scalablesolutions.akka.camel.CamelService
|
||||
import se.scalablesolutions.akka.config.Config
|
||||
import se.scalablesolutions.akka.http.EmbeddedAppServer
|
||||
|
||||
object Main {
|
||||
def main(args: Array[String]) = Kernel.boot
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue