mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-09 23:15:49 +01:00
(refs #106)Don't use DbStarter because GitBucket does not use tcp server and it also create connection for each transaction.
This commit is contained in:
@@ -1,9 +1,9 @@
|
|||||||
package servlet
|
package servlet
|
||||||
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.sql.Connection
|
import java.sql.{DriverManager, Connection}
|
||||||
import org.apache.commons.io.FileUtils
|
import org.apache.commons.io.FileUtils
|
||||||
import javax.servlet.ServletContextEvent
|
import javax.servlet.{ServletContext, ServletContextListener, ServletContextEvent}
|
||||||
import org.apache.commons.io.IOUtils
|
import org.apache.commons.io.IOUtils
|
||||||
import org.slf4j.LoggerFactory
|
import org.slf4j.LoggerFactory
|
||||||
import util.Directory._
|
import util.Directory._
|
||||||
@@ -108,19 +108,17 @@ object AutoUpdate {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Start H2 database and update schema automatically.
|
* Update database schema automatically in the context initializing.
|
||||||
*/
|
*/
|
||||||
class AutoUpdateListener extends org.h2.server.web.DbStarter {
|
class AutoUpdateListener extends ServletContextListener {
|
||||||
import AutoUpdate._
|
import AutoUpdate._
|
||||||
private val logger = LoggerFactory.getLogger(classOf[AutoUpdateListener])
|
private val logger = LoggerFactory.getLogger(classOf[AutoUpdateListener])
|
||||||
|
|
||||||
override def contextInitialized(event: ServletContextEvent): Unit = {
|
override def contextInitialized(event: ServletContextEvent): Unit = {
|
||||||
event.getServletContext.setInitParameter("db.url", s"jdbc:h2:${DatabaseHome}")
|
event.getServletContext.setInitParameter("db.url", s"jdbc:h2:${DatabaseHome}")
|
||||||
super.contextInitialized(event)
|
|
||||||
logger.debug("H2 started")
|
|
||||||
|
|
||||||
logger.debug("Start schema update")
|
logger.debug("Start schema update")
|
||||||
defining(getConnection()){ conn =>
|
defining(getConnection(event.getServletContext)){ conn =>
|
||||||
try {
|
try {
|
||||||
defining(getCurrentVersion()){ currentVersion =>
|
defining(getCurrentVersion()){ currentVersion =>
|
||||||
if(currentVersion == headVersion){
|
if(currentVersion == headVersion){
|
||||||
@@ -144,5 +142,15 @@ class AutoUpdateListener extends org.h2.server.web.DbStarter {
|
|||||||
}
|
}
|
||||||
logger.debug("End schema update")
|
logger.debug("End schema update")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def contextDestroyed(sce: ServletContextEvent): Unit = {
|
||||||
|
// Nothing to do.
|
||||||
|
}
|
||||||
|
|
||||||
|
private def getConnection(servletContext: ServletContext): Connection =
|
||||||
|
DriverManager.getConnection(
|
||||||
|
servletContext.getInitParameter("db.url"),
|
||||||
|
servletContext.getInitParameter("db.user"),
|
||||||
|
servletContext.getInitParameter("db.password"))
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user