src/main/scala/bootstrap/liftweb/Boot.scala
author Tomas Zeman <tzeman@volny.cz>
Fri, 10 Feb 2012 09:53:07 +0100
changeset 11 43fa65f5072e
child 14 5a2f996a5ba0
permissions -rw-r--r--
8f749d3777e669ff Web UI skeleton
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     1
/*
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     2
 * Copyright 2011 Tomas Zeman <tzeman@volny.cz>
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     3
 *
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     4
 * Licensed under the Apache License, Version 2.0 (the "License");
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     5
 * you may not use this file except in compliance with the License.
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     6
 * You may obtain a copy of the License at
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     7
 *
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     8
 *     http://www.apache.org/licenses/LICENSE-2.0
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     9
 *
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    10
 * Unless required by applicable law or agreed to in writing, software
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    11
 * distributed under the License is distributed on an "AS IS" BASIS,
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    12
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    13
 * See the License for the specific language governing permissions and
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    14
 * limitations under the License.
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    15
 */
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    16
package bootstrap.liftweb
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    17
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    18
import fis.base.model._
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    19
import net.liftweb.common._
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    20
import net.liftweb.db.{DB, ConnectionIdentifier}
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    21
import net.liftweb.http._
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    22
import net.liftweb.squerylrecord.SquerylRecord
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    23
import net.liftweb.util._
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    24
import net.liftweb.util.Helpers._
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    25
import net.tz.lift.boot.ProtoBoot
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    26
import net.tz.lift.util.StandardDBVendor
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    27
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    28
class Boot extends ProtoBoot {
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    29
  override def boot = {
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    30
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    31
    /* DB stuff */
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    32
    DB.defineConnectionManager(FisConnectionIdentifier, new FisDbVendor)
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    33
    S.addAround(DB.buildLoanWrapper(List(FisConnectionIdentifier)))
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    34
    SquerylRecord.init(() => new SeqIdPostgreSqlAdapter)
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    35
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    36
    super.boot
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    37
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    38
  }
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    39
}
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    40
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    41
case object FisConnectionIdentifier extends ConnectionIdentifier {
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    42
  val jndiName = "fis"
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    43
}
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    44
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    45
import java.sql.Connection
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    46
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    47
class FisDbVendor extends StandardDBVendor(
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    48
  "org.postgresql.Driver", Props.get("db.fis.url", ""),
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    49
  Props.get("db.fis.user"), Props.get("db.fis.pass")) {
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    50
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    51
  val testQuery = "SELECT version()"
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    52
  override protected def testConnection(c: Connection) = {
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    53
    c.prepareStatement(testQuery).executeQuery
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    54
  }
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    55
}
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    56
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    57
// vim: set ts=2 sw=2 et: