2
* Copyright (C) 2009-2011 Scalable Solutions AB <http://scalablesolutions.se>
7
import akka.config.Config
8
import akka.actor.Actor
11
* This class is responsible for booting up a stack of bundles and then shutting them down
14
private val hasBooted = new Switch(false)
17
private var _bundles: Option[Bootable] = None
19
def bundles = _bundles;
22
* Boot initializes the specified bundles
24
def boot(withBanner: Boolean, b: Bootable): Unit = hasBooted switchOn {
25
if (withBanner) printBanner()
26
println("Starting Akka...")
28
Thread.currentThread.setContextClassLoader(getClass.getClassLoader)
30
println("Akka started successfully")
34
* Shutdown, well, shuts down the bundles used in boot
38
println("Shutting down Akka...")
39
_bundles.foreach(_.onUnload)
41
Actor.shutdownHook.run
42
println("Akka succesfully shut down")
46
private def printBanner() {
48
==============================================================================
60
.ZZZZ7..:ZZZ~ 7ZZZ ZZZ~
61
.$ZZZ$Z+.ZZZZ ZZZ: ZZZ$
62
.,ZZZZ?' =ZZO= .OZZ 'ZZZ
63
.$ZZZZ+ .ZZZZ IZZZ ZZZ$
64
.ZZZZZ' .ZZZZ' .ZZZ$ ?ZZZ
65
.ZZZZZZ' .OZZZ? ?ZZZ 'ZZZ$
66
.?ZZZZZZ' .ZZZZ? .ZZZ? 'ZZZO
67
.+ZZZZZZ?' .7ZZZZ' .ZZZZ :ZZZZ
68
.ZZZZZZ$' .?ZZZZZ' .~ZZZZ 'ZZZZ.
76
=NNNNNNNNND$ NNNNN DDDDDD: $NNNN+ DDDDDN NDDNNNNNNNN,
77
NNNNNNNNNNNNND NNNNN DNNNNN $NNNN+ 8NNNNN= :NNNNNNNNNNNNNN
78
NNNNN$ DNNNNN NNNNN $NNNNN~ $NNNN+ NNNNNN NNNNN, :NNNNN+
79
?DN~ NNNNN NNNNN MNNNNN $NNNN+:NNNNN7 $ND =NNNNN
80
DNNNNN NNNNNDNNNN$ $NNNNDNNNNN :DNNNNN
81
ZNDNNNNNNNNND NNNNNNNNNND, $NNNNNNNNNNN DNDNNNNNNNNNN
82
NNNNNNNDDINNNNN NNNNNNNNNNND $NNNNNNNNNNND ONNNNNNND8+NNNNN
83
:NNNND NNNNN NNNNNN DNNNN, $NNNNNO 7NNNND NNNNNO :NNNNN
84
DNNNN NNNNN NNNNN DNNNN $NNNN+ 8NNNNN NNNNN $NNNNN
85
DNNNNO NNNNNN NNNNN NNNNN $NNNN+ NNNNN$ NNNND, ,NNNNND
86
NNNNNNDDNNNNNNNN NNNNN =NNNNN $NNNN+ DNNNN? DNNNNNNDNNNNNNNND
87
NNNNNNNNN NNNN$ NNNNN 8NNNND $NNNN+ NNNNN= ,DNNNNNNND NNNNN$
89
==============================================================================
91
==============================================================================
92
""".format(Config.VERSION))