/
Boot.scala
85 lines (75 loc) · 2.79 KB
/
Boot.scala
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package bootstrap.liftweb
import net.liftweb.common._
import net.liftweb.util._
import net.liftweb.http._
import net.liftweb.sitemap._
import Loc._
import reactive.web.widgets.Messages
/**
* A class that's instantiated early and run. It allows the application
* to modify lift's environment
*/
class Boot {
def boot {
println("In boot")
getClass.getClassLoader match {
case rcl: java.net.URLClassLoader =>
println("Classpath:"+rcl.getURLs.mkString("\n ", "\n ", ""))
}
def shouldRedirect(r: Req) = !r.request.serverName.endsWith(".tk") &&
r.request.serverName != "localhost"
LiftRules.statelessDispatch.append {
case r if shouldRedirect(r) => () => Full(
PermRedirectResponse("http://reactive-web.tk"+r.uri, r, r.cookies: _*)
)
}
// where to search snippets
LiftRules.addToPackages("reactive.web.demo")
LiftRules.addToPackages("com.damianhelme.tbutils")
reactive.web.Reactions.init(comet = true)
Messages.init(Messages.template("alert"))
// Build SiteMap
def sitemap = () => SiteMap(
Menu("About") / "index",
Menu("Core") / "0" >> PlaceHolder submenus (
Menu("EventStream") / "core" / "EventStream",
Menu("Signal") / "core" / "Signal",
Menu("SeqSignal") / "core" / "SeqSignal",
Menu("Forwardable") / "core" / "Forwardable",
Menu("Logger") / "core" / "Logger",
Menu("Recipes") / "core" / "Recipes"
),
Menu("Web") / "1" >> PlaceHolder submenus (
Menu("Getting Started") / "web" / "GettingStarted",
Menu("Low Level API") / "web" / "LowLevel",
Menu("Javascript") / "web" / "JsEventStream",
Menu("Events") / "web" / "Events",
Menu("Properties") / "web" / "Properties",
Menu("Elements") / "web" / "Elements",
Menu("HTML Classes") / "web" / "Html",
Menu("Testing") / "web" / "TestScope",
Menu("Configuration") / "web" / "Config",
Menu("Simple demo") / "demos" / "SimpleDemo"
),
Menu("Widgets") / "2" >> PlaceHolder submenus (
Menu("Messages") / "widgets" / "Messages"
),
Menu("Scaladocs") / "3" >> PlaceHolder submenus (
Menu("reactive-core") / "reactive-core-api" / **,
Menu("reactive-web") / "reactive-web-api" / **
),
reactive.web.demo.snippet.DemoPane.menu
)
LiftRules.setSiteMapFunc(sitemap)
LiftRules.liftRequest.append {
case Req("reactive-core-api" :: _, _, _) => false
case Req("reactive-web-api" :: _, _, _) => false
}
LiftRules.excludePathFromContextPathRewriting.default.set{ _: String => true }
LiftRules.useXhtmlMimeType = false
LiftRules.htmlProperties.default.set( (r: Req) =>
new Html5Properties(r.userAgent)
)
LiftRules.early.append( _.setCharacterEncoding("UTF-8") )
}
}