Permalink
Browse files

Updated to Lift 2.2-RC4

  • Loading branch information...
1 parent 50a4802 commit 1411ef8719e7d83c85aebeb52dcefa3292a5d196 @dpp dpp committed Dec 21, 2010
Showing with 655 additions and 4 deletions.
  1. +4 −1 README
  2. +1 −1 lift_basic/project/build/LiftProject.scala
  3. +1 −1 lift_blank/project/build/LiftProject.scala
  4. +1 −1 lift_mvc/project/build/LiftProject.scala
  5. +9 −0 lift_xhtml/project/build.properties
  6. +22 −0 lift_xhtml/project/build/LiftProject.scala
  7. +1 −0 lift_xhtml/sbt
  8. BIN lift_xhtml/sbt-launcher.jar
  9. +2 −0 lift_xhtml/sbt.bat
  10. 0 lift_xhtml/src/main/resources/.keep
  11. 0 lift_xhtml/src/main/resources/props/default.props
  12. +74 −0 lift_xhtml/src/main/scala/bootstrap/liftweb/Boot.scala
  13. 0 lift_xhtml/src/main/scala/code/comet/.keep
  14. +57 −0 lift_xhtml/src/main/scala/code/lib/DependencyFactory.scala
  15. +38 −0 lift_xhtml/src/main/scala/code/model/User.scala
  16. +25 −0 lift_xhtml/src/main/scala/code/snippet/HelloWorld.scala
  17. 0 lift_xhtml/src/main/scala/code/view/.keep
  18. +21 −0 lift_xhtml/src/main/webapp/WEB-INF/web.xml
  19. BIN lift_xhtml/src/main/webapp/images/ajax-loader.gif
  20. +18 −0 lift_xhtml/src/main/webapp/index.html
  21. +5 −0 lift_xhtml/src/main/webapp/static/index.html
  22. +85 −0 lift_xhtml/src/main/webapp/templates-hidden/default.html
  23. +57 −0 lift_xhtml/src/main/webapp/templates-hidden/wizard-all.html
  24. 0 lift_xhtml/src/test/resources/.keep
  25. +15 −0 lift_xhtml/src/test/scala/LiftConsole.scala
  26. +33 −0 lift_xhtml/src/test/scala/RunWebApp.scala
  27. +76 −0 lift_xhtml/src/test/scala/code/AppTest.scala
  28. +64 −0 lift_xhtml/src/test/scala/code/XmlSourceSpecs.scala
  29. +46 −0 lift_xhtml/src/test/scala/code/snippet/HelloWorldTest.scala
View
5 README
@@ -1,7 +1,10 @@
This file contains multiple Lift project templates:
- lift_basic is a basic Lift application with a built-in user class
- and nice use of Blueprint CSS
+ and nice use of Blueprint CSS and HTML5
+
+- lift_xhtml is a basic Lift application with a built-in user class
+ and nice use of Blueprint CSS and XHTML
- lift_blank is a blank Lift project that does not have any model
or CSS
@@ -1,7 +1,7 @@
import sbt._
class LiftProject(info: ProjectInfo) extends DefaultWebProject(info) {
- val liftVersion = "2.2-RC3"
+ val liftVersion = "2.2-RC4"
// uncomment the following if you want to use the snapshot repo
// val scalatoolsSnapshot = ScalaToolsSnapshots
@@ -1,7 +1,7 @@
import sbt._
class LiftProject(info: ProjectInfo) extends DefaultWebProject(info) {
- val liftVersion = "2.2-RC3"
+ val liftVersion = "2.2-RC4"
// uncomment the following if you want to use the snapshot repo
// val scalatoolsSnapshot = ScalaToolsSnapshots
@@ -1,7 +1,7 @@
import sbt._
class LiftProject(info: ProjectInfo) extends DefaultWebProject(info) {
- val liftVersion = "2.2-RC3"
+ val liftVersion = "2.2-RC4"
// uncomment the following if you want to use the snapshot repo
// val scalatoolsSnapshot = ScalaToolsSnapshots
@@ -0,0 +1,9 @@
+#Project properties
+#Fri Apr 23 11:24:20 PDT 2010
+project.organization=Lift
+project.name=Lift SBT Template
+sbt.version=0.7.4
+project.version=0.1
+def.scala.version=2.7.7
+build.scala.versions=2.8.1
+project.initialize=false
@@ -0,0 +1,22 @@
+import sbt._
+
+class LiftProject(info: ProjectInfo) extends DefaultWebProject(info) {
+ val liftVersion = "2.2-RC4"
+
+ // uncomment the following if you want to use the snapshot repo
+ // val scalatoolsSnapshot = ScalaToolsSnapshots
+
+ // If you're using JRebel for Lift development, uncomment
+ // this line
+ // override def scanDirectories = Nil
+
+ override def libraryDependencies = Set(
+ "net.liftweb" %% "lift-webkit" % liftVersion % "compile->default",
+ "net.liftweb" %% "lift-mapper" % liftVersion % "compile->default",
+ "org.mortbay.jetty" % "jetty" % "6.1.22" % "test->default",
+ "junit" % "junit" % "4.5" % "test->default",
+ "ch.qos.logback" % "logback-classic" % "0.9.26",
+ "org.scala-tools.testing" %% "specs" % "1.6.6" % "test->default",
+ "com.h2database" % "h2" % "1.2.138"
+ ) ++ super.libraryDependencies
+}
View
@@ -0,0 +1 @@
+java -Xmx512M -Xss2M -XX:+CMSClassUnloadingEnabled -jar `dirname $0`/sbt-launcher.jar "$@"
View
Binary file not shown.
View
@@ -0,0 +1,2 @@
+set SCRIPT_DIR=%~dp0
+java -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Xmx512M -Xss2M -jar "%SCRIPT_DIR%\sbt-launcher.jar" %*
No changes.
@@ -0,0 +1,74 @@
+package bootstrap.liftweb
+
+import net.liftweb._
+import util._
+import Helpers._
+
+import common._
+import http._
+import sitemap._
+import Loc._
+import mapper._
+
+import code.model._
+
+
+/**
+ * A class that's instantiated early and run. It allows the application
+ * to modify lift's environment
+ */
+class Boot {
+ def boot {
+ if (!DB.jndiJdbcConnAvailable_?) {
+ val vendor =
+ new StandardDBVendor(Props.get("db.driver") openOr "org.h2.Driver",
+ Props.get("db.url") openOr
+ "jdbc:h2:lift_proto.db;AUTO_SERVER=TRUE",
+ Props.get("db.user"), Props.get("db.password"))
+
+ LiftRules.unloadHooks.append(vendor.closeAllConnections_! _)
+
+ DB.defineConnectionManager(DefaultConnectionIdentifier, vendor)
+ }
+
+ // Use Lift's Mapper ORM to populate the database
+ // you don't need to use Mapper to use Lift... use
+ // any ORM you want
+ Schemifier.schemify(true, Schemifier.infoF _, User)
+
+ // where to search snippet
+ LiftRules.addToPackages("code")
+
+ // Build SiteMap
+ def sitemap = SiteMap(
+ Menu.i("Home") / "index" >> User.AddUserMenusAfter, // the simple way to declare a menu
+
+ // more complex because this menu allows anything in the
+ // /static path to be visible
+ Menu(Loc("Static", Link(List("static"), true, "/static/index"),
+ "Static Content")))
+
+ def sitemapMutators = User.sitemapMutator
+
+ // set the sitemap. Note if you don't want access control for
+ // each page, just comment this line out.
+ LiftRules.setSiteMapFunc(() => sitemapMutators(sitemap))
+
+ //Show the spinny image when an Ajax call starts
+ LiftRules.ajaxStart =
+ Full(() => LiftRules.jsArtifacts.show("ajax-loader").cmd)
+
+ // Make the spinny image go away when it ends
+ LiftRules.ajaxEnd =
+ Full(() => LiftRules.jsArtifacts.hide("ajax-loader").cmd)
+
+ // Force the request to be UTF-8
+ LiftRules.early.append(_.setCharacterEncoding("UTF-8"))
+
+ // What is the function to test if a user is logged in?
+ LiftRules.loggedInTest = Full(() => User.loggedIn_?)
+
+ // Make a transaction span the whole HTTP request
+ S.addAround(DB.buildLoanWrapper)
+ }
+}
No changes.
@@ -0,0 +1,57 @@
+package code {
+package lib {
+
+import net.liftweb._
+import http._
+import util._
+import common._
+import _root_.java.util.Date
+
+/**
+ * A factory for generating new instances of Date. You can create
+ * factories for each kind of thing you want to vend in your application.
+ * An example is a payment gateway. You can change the default implementation,
+ * or override the default implementation on a session, request or current call
+ * stack basis.
+ */
+object DependencyFactory extends Factory {
+ implicit object time extends FactoryMaker(Helpers.now _)
+
+ /**
+ * objects in Scala are lazily created. The init()
+ * method creates a List of all the objects. This
+ * results in all the objects getting initialized and
+ * registering their types with the dependency injector
+ */
+ private def init() {
+ List(time)
+ }
+ init()
+}
+
+/*
+/**
+ * Examples of changing the implementation
+ */
+sealed abstract class Changer {
+ def changeDefaultImplementation() {
+ DependencyFactory.time.default.set(() => new Date())
+ }
+
+ def changeSessionImplementation() {
+ DependencyFactory.time.session.set(() => new Date())
+ }
+
+ def changeRequestImplementation() {
+ DependencyFactory.time.request.set(() => new Date())
+ }
+
+ def changeJustForCall(d: Date) {
+ DependencyFactory.time.doWith(d) {
+ // perform some calculations here
+ }
+ }
+}
+*/
+}
+}
@@ -0,0 +1,38 @@
+package code {
+package model {
+
+import _root_.net.liftweb.mapper._
+import _root_.net.liftweb.util._
+import _root_.net.liftweb.common._
+
+/**
+ * The singleton that has methods for accessing the database
+ */
+object User extends User with MetaMegaProtoUser[User] {
+ override def dbTableName = "users" // define the DB table name
+ override def screenWrap = Full(<lift:surround with="default" at="content">
+ <lift:bind /></lift:surround>)
+ // define the order fields will appear in forms and output
+ override def fieldOrder = List(id, firstName, lastName, email,
+ locale, timezone, password, textArea)
+
+ // comment this line out to require email validations
+ override def skipEmailValidation = true
+}
+
+/**
+ * An O-R mapped "User" class that includes first name, last name, password and we add a "Personal Essay" to it
+ */
+class User extends MegaProtoUser[User] {
+ def getSingleton = User // what's the "meta" server
+
+ // define an additional field for a personal essay
+ object textArea extends MappedTextarea(this, 2048) {
+ override def textareaRows = 10
+ override def textareaCols = 50
+ override def displayName = "Personal Essay"
+ }
+}
+
+}
+}
@@ -0,0 +1,25 @@
+package code {
+package snippet {
+
+import _root_.scala.xml.{NodeSeq, Text}
+import _root_.net.liftweb.util._
+import _root_.net.liftweb.common._
+import _root_.java.util.Date
+import code.lib._
+import Helpers._
+
+class HelloWorld {
+ lazy val date: Box[Date] = DependencyFactory.inject[Date] // inject the date
+
+ // replace the contents of the element with id "time" with the date
+ def howdy = "#time *" #> date.map(_.toString)
+
+ /*
+ lazy val date: Date = DependencyFactory.time.vend // create the date via factory
+
+ def howdy = "#time *" #> date.toString
+ */
+}
+
+}
+}
No changes.
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!DOCTYPE web-app
+PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+"http://java.sun.com/dtd/web-app_2_3.dtd">
+
+<web-app>
+<filter>
+ <filter-name>LiftFilter</filter-name>
+ <display-name>Lift Filter</display-name>
+ <description>The Filter that intercepts lift calls</description>
+ <filter-class>net.liftweb.http.LiftFilter</filter-class>
+</filter>
+
+
+<filter-mapping>
+ <filter-name>LiftFilter</filter-name>
+ <url-pattern>/*</url-pattern>
+</filter-mapping>
+
+</web-app>
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta content="text/html; charset=UTF-8" http-equiv="content-type" />
+ <title>Home</title>
+ </head>
+ <body class="lift:content_id=main">
+ <div id="main" class="lift:surround?with=default;at=content">
+ <h2>Welcome to your project!</h2>
+ <p>
+ <span class="lift:helloWorld.howdy">
+ Welcome to your Lift app at <span id="time">Time goes here</span>
+ </span>
+ </p>
+ </div>
+ </body>
+</html>
+
@@ -0,0 +1,5 @@
+<div id="main" class="lift:surround?with=default;at=content">
+ Static content... everything you put in the /static
+ directory will be served without additions to SiteMap
+</div>
+
Oops, something went wrong.

0 comments on commit 1411ef8

Please sign in to comment.