diff --git a/.travis.yml b/.travis.yml index 52020be..880c353 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,9 +1,9 @@ language: go go: - - "1.9" - - "1.10" - - "1.11" + - "1.12" + - "1.13" + - "1.14" - "tip" os: @@ -23,15 +23,19 @@ services: - memcache - redis-server +env: + # Setting environments variables + - GO111MODULEsss=auto + before_install: # TRAVIS_OS_NAME - linux and osx - echo $TRAVIS_OS_NAME - - | - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then - brew update && brew install memcached redis && brew services start redis && brew services start memcached - fi - - redis-server --daemonize yes - - redis-cli info + #- | + # if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then + # brew update && brew install memcached redis && brew services start redis && brew services start memcached + # fi + #- redis-server --daemonize yes + #- redis-cli info install: # Setting environments variables @@ -39,31 +43,46 @@ install: - export REVEL_BRANCH="develop" - 'if [[ "$TRAVIS_BRANCH" == "master" ]]; then export REVEL_BRANCH="master"; fi' - 'echo "Travis branch: $TRAVIS_BRANCH, Revel dependency branch: $REVEL_BRANCH"' - - git clone -b $REVEL_BRANCH git://github.com/revel/modules ../modules/ + # - go mod edit -replace "github.com/revel/revel=github.com/revel/revel@$REVEL_BRANCH" examples/booking/go.mod + # Build the revel CLI based on branch + - export GO111MODULE=on + - git clone -b $REVEL_BRANCH git://github.com/revel/cmd + - cd cmd; go build -o $GOPATH/bin/revel github.com/revel/cmd/revel; ls -lah $GOPATH/bin; cd ..; rm -rf cmd + # Update the go.mod files in the example folder with the correct branch + - | + for file in booking ; do echo "$file is a directory"; + cat $file/go.mod + echo "replace github.com/revel/modules => github.com/revel/modules $REVEL_BRANCH" >> $file/go.mod + echo "replace github.com/revel/revel => github.com/revel/revel $REVEL_BRANCH" >> $file/go.mod + done + + # Checkout the other projects to test backwards compatibility + - export GO111MODULE=auto - git clone -b $REVEL_BRANCH git://github.com/revel/revel ../revel/ - - git clone -b $REVEL_BRANCH git://github.com/revel/cmd ../cmd/ + - git clone -b $REVEL_BRANCH git://github.com/revel/modules ../modules/ - git clone -b $REVEL_BRANCH git://github.com/revel/config ../config/ - git clone -b $REVEL_BRANCH git://github.com/revel/cron ../cron/ - go get -t -v github.com/revel/revel/... - - go get -t -v github.com/revel/cmd/revel + script: - # Commented out persona test sample, since persona.org gonna be shutdown. - # Also http://personatestuser.org becomes non-responsive most of the time. - # https://wiki.mozilla.org/Identity/Persona_Shutdown_Guidelines_for_Reliers - # - revel test github.com/revel/examples/persona - # Build & run the sample apps - - revel test -v -a github.com/revel/examples/booking - - revel test -v -a github.com/revel/examples/booking -m dev-fast - revel test -v -a github.com/revel/examples/booking2 - - go test -v github.com/revel/examples/booking/app/... -args -revel.importPath=github.com/revel/examples/booking - revel test -v -a github.com/revel/examples/chat - revel test -v -a github.com/revel/examples/facebook-oauth2 - revel test -v -a github.com/revel/examples/twitter-oauth - revel test -v -a github.com/revel/examples/validation - revel test -v -a github.com/revel/examples/upload + # Should not need gopath to run + - mkdir GOPATHBACKUP + - export GOPATH=$PWD/GOPATHBACKUP + # Build & run the sample apps + - revel test -v -a booking + # fast http not supported on windows + - if [[ "$TRAVIS_OS_NAME" != "windows" ]]; then revel test -v -a booking -m dev-fast; fi + # This test cannot be done at this time on go.mod projects + #- cd booking; go test -v github.com/revel/examples/booking/app/... -args -revel.importPath=github.com/revel/examples/booking; cd .. + matrix: allow_failures: - - os: windows - go: tip diff --git a/booking/app/controllers/hotels.go b/booking/app/controllers/hotels.go index 2fecfd6..99766b9 100644 --- a/booking/app/controllers/hotels.go +++ b/booking/app/controllers/hotels.go @@ -1,3 +1,29 @@ +//go:generate swagger generate spec -o swagger.json + +// Package classification Swagger Hotel Example. +// Swagger Hotel Example +// +// +// +// Schemes: https +// Host: hotel.example.revelframework.com +// BasePath: / +// Version: 1.0.0 +// License: MIT http://opensource.org/licenses/MIT +// Contact: Name https://www.somewhere.com +// +// Consumes: +// - application/json +// - application/x-www-form-urlencoded +// +// Produces: +// - text/html +// +// +// +// +// swagger:meta + package controllers import ( @@ -11,7 +37,7 @@ import ( "github.com/revel/examples/booking/app/models" "github.com/revel/examples/booking/app/routes" - "gopkg.in/Masterminds/squirrel.v1" + "github.com/Masterminds/squirrel" ) type Hotels struct { @@ -40,6 +66,69 @@ func (c Hotels) Index() revel.Result { return c.Render(bookings) } +// swagger:route GET /hotels/ListJson enter demo +// +// Enter Demo +// +// +// Consumes: +// - application/x-www-form-urlencoded +// +// Produces: +// - text/html +// +// Schemes: https +// +// +// Responses: +// 200: Success +// 401: Invalid User + +// swagger:operation GET /demo demo +// +// Enter Demo +// +// +// --- +// produces: +// - text/html +// parameters: +// - name: user +// in: formData +// description: user +// required: true +// type: string +// - name: demo +// in: formData +// description: demo +// required: true +// type: string +// responses: +// '200': +// description: Success +// '401': +// description: Invalid User +func (c Hotels) ListJson(search string, size, page uint64) revel.Result { + if page == 0 { + page = 1 + } + nextPage := page + 1 + search = strings.TrimSpace(search) + + var hotels []*models.Hotel + builder := c.Db.SqlStatementBuilder.Select("*").From("Hotel").Offset((page - 1) * size).Limit(size) + if search != "" { + search = "%" + strings.ToLower(search) + "%" + builder = builder.Where(squirrel.Or{ + squirrel.Expr("lower(Name) like ?", search), + squirrel.Expr("lower(City) like ?", search)}) + } + if _, err := c.Txn.Select(&hotels, builder); err != nil { + c.Log.Fatal("Unexpected error loading hotels", "error", err) + } + + return c.RenderJSON(map[string]interface{}{"hotels":hotels, "search":search, "size":size, "page":page, "nextPage":nextPage}) +} func (c Hotels) List(search string, size, page uint64) revel.Result { if page == 0 { page = 1 diff --git a/booking/app/init.go b/booking/app/init.go index b524169..b007ef8 100644 --- a/booking/app/init.go +++ b/booking/app/init.go @@ -7,9 +7,11 @@ import ( "github.com/revel/revel" "github.com/valyala/fasthttp" "golang.org/x/crypto/bcrypt" - "gopkg.in/gorp.v2" + "github.com/go-gorp/gorp" "net/http" "time" + "os" + "github.com/revel/revel/logger" ) func init() { @@ -28,6 +30,11 @@ func init() { revel.CompressFilter, // Compress the result. revel.ActionInvoker, // Invoke the action. } + logger.LogFunctionMap["stdoutjson"]= + func(c *logger.CompositeMultiHandler, options *logger.LogOptions) { + // Set the json formatter to os.Stdout, replace any existing handlers for the level specified + c.SetJson(os.Stdout, options) + } revel.AddInitEventHandler(func(event revel.Event, i interface{}) revel.EventResponse { switch event { case revel.ENGINE_BEFORE_INITIALIZED: diff --git a/booking/app/models/booking.go b/booking/app/models/booking.go index 98609c2..bb6d18b 100644 --- a/booking/app/models/booking.go +++ b/booking/app/models/booking.go @@ -5,7 +5,7 @@ import ( "github.com/revel/revel" "regexp" "time" - "gopkg.in/gorp.v2" + "github.com/go-gorp/gorp" ) type Booking struct { diff --git a/booking/conf/app.conf b/booking/conf/app.conf index 2c2d573..8c0157c 100644 --- a/booking/conf/app.conf +++ b/booking/conf/app.conf @@ -2,8 +2,8 @@ app.name=Booking example app.secret=secret -# Server -http.addr= +# Server, listen on all interfaces by using 0.0.0.0 +http.addr=0.0.0.0 http.port=9000 http.ssl=false http.sslcert= @@ -17,9 +17,9 @@ db.connection = file::memory:?mode=memory&cache=shared build.tags=gorp -module.jobs=github.com/revel/modules/jobs -module.static=github.com/revel/modules/static -module.gorp=github.com/revel/modules/orm/gorp +module.0.static=github.com/revel/modules/static +module.1.jobs=github.com/revel/modules/jobs +module.2.gorp=github.com/revel/modules/orm/gorp [dev] # Logging @@ -28,7 +28,7 @@ log.all.output = stderr mode.dev=true watch=true watch.mode=eager -module.testrunner=github.com/revel/modules/testrunner +module.3.testrunner=github.com/revel/modules/testrunner [dev-app] # Logging @@ -41,9 +41,12 @@ watch=true watch.mode=eager module.testrunner=github.com/revel/modules/testrunner + + [dev-fast] +# This mode uses the fasthttp module to serve out web pages, and a custom logger # Logging -log.all.output = stderr +log.all.output = stdoutjson mode.dev=true watch=true diff --git a/booking/go.mod b/booking/go.mod new file mode 100644 index 0000000..9cdaae4 --- /dev/null +++ b/booking/go.mod @@ -0,0 +1,19 @@ +module github.com/revel/examples/booking + +go 1.12 + +require ( + github.com/Masterminds/squirrel v1.3.0 + github.com/go-gorp/gorp v2.2.0+incompatible + github.com/lib/pq v1.5.0 // indirect + github.com/mattn/go-sqlite3 v2.0.3+incompatible + github.com/pkg/errors v0.9.1 // indirect + github.com/poy/onpar v1.0.0 // indirect + github.com/revel/cmd v0.21.1 + github.com/revel/modules v0.21.0 + github.com/revel/revel v0.21.0 + github.com/valyala/fasthttp v1.12.0 + golang.org/x/crypto v0.0.0-20200429183012-4b2356b1ed79 + gopkg.in/gorp.v2 v2.2.0 // indirect +) + diff --git a/booking/none b/booking/none deleted file mode 100644 index 4070319..0000000 --- a/booking/none +++ /dev/null @@ -1,547 +0,0 @@ -DEBUG 2018/09/23 09:45:52 revel server.go:27: RegisterServerEngine: Registered engine section=server name=go -DEBUG 2018/09/23 09:45:52 revel template_engine.go:45: Registered template engine loaded section=template name=go -DEBUG 2018/09/23 09:45:52 revel module.go:152: Sorted keys section=module keys=module.gorp -DEBUG 2018/09/23 09:45:52 revel module.go:152: Sorted keys section=module keys=module.jobs -DEBUG 2018/09/23 09:45:52 revel module.go:152: Sorted keys section=module keys=module.static -DEBUG 2018/09/23 09:45:52 revel module.go:152: Sorted keys section=module keys=module.testrunner -DEBUG 2018/09/23 09:45:52 revel module.go:200: Loaded module section=module -DEBUG 2018/09/23 09:45:52 revel module.go:200: Loaded module section=module -DEBUG 2018/09/23 09:45:52 revel module.go:200: Loaded module section=module -DEBUG 2018/09/23 09:45:52 revel module.go:200: Loaded module section=module -DEBUG 2018/09/23 09:45:52 revel module.go:206: Found testrunner module, adding `tests` path section=module path=/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/tests -DEBUG 2018/09/23 09:45:52 revel controller_type.go:64: Registered controller: App\application section=controller -DEBUG 2018/09/23 09:45:52 revel controller.go:535: RegisterController:Registered controller section=controller controller=App\\application -DEBUG 2018/09/23 09:45:52 revel controller_type.go:64: Registered controller: App\hotels section=controller -DEBUG 2018/09/23 09:45:52 revel controller.go:535: RegisterController:Registered controller section=controller controller=App\\hotels -DEBUG 2018/09/23 09:45:52 revel controller_type.go:64: Registered controller: jobs\jobs section=controller -DEBUG 2018/09/23 09:45:52 revel controller.go:535: RegisterController:Registered controller section=controller controller=jobs\\jobs -DEBUG 2018/09/23 09:45:52 revel controller_type.go:64: Registered controller: gorp\controller section=controller -DEBUG 2018/09/23 09:45:52 revel controller.go:535: RegisterController:Registered controller section=controller controller=gorp\\controller -DEBUG 2018/09/23 09:45:52 revel controller_type.go:64: Registered controller: static\static section=controller -DEBUG 2018/09/23 09:45:52 revel controller.go:535: RegisterController:Registered controller section=controller controller=static\\static -DEBUG 2018/09/23 09:45:52 revel controller_type.go:64: Registered controller: testrunner\testrunner section=controller -DEBUG 2018/09/23 09:45:52 revel controller.go:535: RegisterController:Registered controller section=controller controller=testrunner\\testrunner -DEBUG 2018/09/23 09:45:52 revel server.go:111: InitServerEngine: Found server engine and invoking section=server name=go -DEBUG 2018/09/23 09:45:52 revel i18n.go:129: Importing messages from module: section=i18n importpath=/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/app -DEBUG 2018/09/23 09:45:52 revel i18n.go:129: Importing messages from module: section=i18n importpath=github.com/revel/modules/orm/gorp -DEBUG 2018/09/23 09:45:52 revel i18n.go:129: Importing messages from module: section=i18n importpath=github.com/revel/modules/jobs -DEBUG 2018/09/23 09:45:52 revel i18n.go:129: Importing messages from module: section=i18n importpath=github.com/revel/modules/static -DEBUG 2018/09/23 09:45:52 revel i18n.go:165: Successfully loaded messages from file section=i18n file=static.en -DEBUG 2018/09/23 09:45:52 revel i18n.go:129: Importing messages from module: section=i18n importpath=github.com/revel/modules/testrunner -DEBUG 2018/09/23 09:45:52 revel router.go:119: NewRoute: New splitActionPath path:/@tests action:TestRunner.Index section=router -DEBUG 2018/09/23 09:45:52 revel router.go:314: splitActionPath: Check for namespace section=router actionPath=testrunner.index controller=testrunner method=index -INFO 2018/09/23 09:45:52 revel router.go:336: Found controller for path section=router actionPath=testrunner.index controller=testrunner method=index controllerType="&{Namespace:testrunner\\ ModuleSource:0xc4200692c0 Type:controllers.TestRunner Methods:[0xc420079e50 0xc420079ea0 0xc420079ef0 0xc420079f40] ControllerIndexes:[[0]] ControllerEvents:0xc4202ab740}" -DEBUG 2018/09/23 09:45:52 revel router.go:415: splitActionPath: Split Storing recognized action path testrunner.index for route &revel.Route{ModuleSource:(*revel.Module)(0xc4200692c0), Method:"GET", Path:"/@tests", Action:"TestRunner.Index", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/@tests", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/modules/testrunner/conf/routes", line:0} section=router actionPath=testrunner.index controller=testrunner method=index -DEBUG 2018/09/23 09:45:52 revel router.go:421: splitActionPath: Split Storing recognized action path testrunner\testrunner.index for route &revel.Route{ModuleSource:(*revel.Module)(0xc4200692c0), Method:"GET", Path:"/@tests", Action:"TestRunner.Index", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/@tests", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/modules/testrunner/conf/routes", line:0} section=router actionPath=testrunner.index controller=testrunner method=index -DEBUG 2018/09/23 09:45:52 revel router.go:119: NewRoute: New splitActionPath path:/@tests.list action:TestRunner.List section=router -DEBUG 2018/09/23 09:45:52 revel router.go:314: splitActionPath: Check for namespace section=router actionPath=testrunner.list controller=testrunner method=list -INFO 2018/09/23 09:45:52 revel router.go:336: Found controller for path section=router actionPath=testrunner.list controller=testrunner method=list controllerType="&{Namespace:testrunner\\ ModuleSource:0xc4200692c0 Type:controllers.TestRunner Methods:[0xc420079e50 0xc420079ea0 0xc420079ef0 0xc420079f40] ControllerIndexes:[[0]] ControllerEvents:0xc4202ab740}" -DEBUG 2018/09/23 09:45:52 revel router.go:415: splitActionPath: Split Storing recognized action path testrunner.list for route &revel.Route{ModuleSource:(*revel.Module)(0xc4200692c0), Method:"GET", Path:"/@tests.list", Action:"TestRunner.List", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/@tests.list", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/modules/testrunner/conf/routes", line:1} section=router actionPath=testrunner.list controller=testrunner method=list -DEBUG 2018/09/23 09:45:52 revel router.go:421: splitActionPath: Split Storing recognized action path testrunner\testrunner.list for route &revel.Route{ModuleSource:(*revel.Module)(0xc4200692c0), Method:"GET", Path:"/@tests.list", Action:"TestRunner.List", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/@tests.list", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/modules/testrunner/conf/routes", line:1} section=router actionPath=testrunner.list controller=testrunner method=list -DEBUG 2018/09/23 09:45:52 revel router.go:119: NewRoute: New splitActionPath path:/@tests/public/*filepath action:Static.ServeModule section=router -DEBUG 2018/09/23 09:45:52 revel router.go:314: splitActionPath: Check for namespace section=router actionPath=static.servemodule controller=static method=servemodule -INFO 2018/09/23 09:45:52 revel router.go:336: Found controller for path section=router actionPath=static.servemodule controller=static method=servemodule controllerType= -DEBUG 2018/09/23 09:45:52 revel router.go:415: splitActionPath: Split Storing recognized action path static.servemodule(testrunner,public) for route &revel.Route{ModuleSource:(*revel.Module)(0xc4200692c0), Method:"GET", Path:"/@tests/public/*filepath", Action:"Static.ServeModule", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string{"testrunner", "public"}, TreePath:"/GET/@tests/public/*filepath", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/modules/testrunner/conf/routes", line:2} section=router actionPath=static.servemodule controller=static method=servemodule -DEBUG 2018/09/23 09:45:52 revel router.go:421: splitActionPath: Split Storing recognized action path static\static.servemodule(testrunner,public) for route &revel.Route{ModuleSource:(*revel.Module)(0xc4200692c0), Method:"GET", Path:"/@tests/public/*filepath", Action:"Static.ServeModule", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string{"testrunner", "public"}, TreePath:"/GET/@tests/public/*filepath", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/modules/testrunner/conf/routes", line:2} section=router actionPath=static.servemodule controller=static method=servemodule -DEBUG 2018/09/23 09:45:52 revel router.go:119: NewRoute: New splitActionPath path:/@tests/:suite action:TestRunner.Suite section=router -DEBUG 2018/09/23 09:45:52 revel router.go:314: splitActionPath: Check for namespace section=router actionPath=testrunner.suite controller=testrunner method=suite -INFO 2018/09/23 09:45:52 revel router.go:336: Found controller for path section=router actionPath=testrunner.suite controller=testrunner method=suite controllerType="&{Namespace:testrunner\\ ModuleSource:0xc4200692c0 Type:controllers.TestRunner Methods:[0xc420079e50 0xc420079ea0 0xc420079ef0 0xc420079f40] ControllerIndexes:[[0]] ControllerEvents:0xc4202ab740}" -DEBUG 2018/09/23 09:45:52 revel router.go:415: splitActionPath: Split Storing recognized action path testrunner.suite for route &revel.Route{ModuleSource:(*revel.Module)(0xc4200692c0), Method:"GET", Path:"/@tests/:suite", Action:"TestRunner.Suite", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/@tests/:suite", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/modules/testrunner/conf/routes", line:3} section=router actionPath=testrunner.suite controller=testrunner method=suite -DEBUG 2018/09/23 09:45:52 revel router.go:421: splitActionPath: Split Storing recognized action path testrunner\testrunner.suite for route &revel.Route{ModuleSource:(*revel.Module)(0xc4200692c0), Method:"GET", Path:"/@tests/:suite", Action:"TestRunner.Suite", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/@tests/:suite", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/modules/testrunner/conf/routes", line:3} section=router actionPath=testrunner.suite controller=testrunner method=suite -DEBUG 2018/09/23 09:45:52 revel router.go:119: NewRoute: New splitActionPath path:/@tests/:suite/:test action:TestRunner.Run section=router -DEBUG 2018/09/23 09:45:52 revel router.go:314: splitActionPath: Check for namespace section=router actionPath=testrunner.run controller=testrunner method=run -INFO 2018/09/23 09:45:52 revel router.go:336: Found controller for path section=router actionPath=testrunner.run controller=testrunner method=run controllerType="&{Namespace:testrunner\\ ModuleSource:0xc4200692c0 Type:controllers.TestRunner Methods:[0xc420079e50 0xc420079ea0 0xc420079ef0 0xc420079f40] ControllerIndexes:[[0]] ControllerEvents:0xc4202ab740}" -DEBUG 2018/09/23 09:45:52 revel router.go:415: splitActionPath: Split Storing recognized action path testrunner.run for route &revel.Route{ModuleSource:(*revel.Module)(0xc4200692c0), Method:"GET", Path:"/@tests/:suite/:test", Action:"TestRunner.Run", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/@tests/:suite/:test", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/modules/testrunner/conf/routes", line:4} section=router actionPath=testrunner.run controller=testrunner method=run -DEBUG 2018/09/23 09:45:52 revel router.go:421: splitActionPath: Split Storing recognized action path testrunner\testrunner.run for route &revel.Route{ModuleSource:(*revel.Module)(0xc4200692c0), Method:"GET", Path:"/@tests/:suite/:test", Action:"TestRunner.Run", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/@tests/:suite/:test", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/modules/testrunner/conf/routes", line:4} section=router actionPath=testrunner.run controller=testrunner method=run -DEBUG 2018/09/23 09:45:52 revel router.go:119: NewRoute: New splitActionPath path:/@jobs action:Jobs.Status section=router -DEBUG 2018/09/23 09:45:52 revel router.go:314: splitActionPath: Check for namespace section=router actionPath=jobs.status controller=jobs method=status -INFO 2018/09/23 09:45:52 revel router.go:336: Found controller for path section=router actionPath=jobs.status controller=jobs method=status controllerType="&{Namespace:jobs\\ ModuleSource:0xc420069140 Type:controllers.Jobs Methods:[0xc4200799f0] ControllerIndexes:[[0]] ControllerEvents:0xc42029bf20}" -DEBUG 2018/09/23 09:45:52 revel router.go:415: splitActionPath: Split Storing recognized action path jobs.status for route &revel.Route{ModuleSource:(*revel.Module)(0xc420069140), Method:"GET", Path:"/@jobs", Action:"Jobs.Status", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/@jobs", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/modules/jobs/conf/routes", line:0} section=router actionPath=jobs.status controller=jobs method=status -DEBUG 2018/09/23 09:45:52 revel router.go:421: splitActionPath: Split Storing recognized action path jobs\jobs.status for route &revel.Route{ModuleSource:(*revel.Module)(0xc420069140), Method:"GET", Path:"/@jobs", Action:"Jobs.Status", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/@jobs", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/modules/jobs/conf/routes", line:0} section=router actionPath=jobs.status controller=jobs method=status -DEBUG 2018/09/23 09:45:52 revel router.go:119: NewRoute: New splitActionPath path:/public/static/*filepath action:_LOCAL_\Static.ServeModule section=router -DEBUG 2018/09/23 09:45:52 revel router.go:314: splitActionPath: Check for namespace section=router actionPath=static\\static.servemodule controller=static\\static method=servemodule -DEBUG 2018/09/23 09:45:52 revel router.go:318: Found module namespace section=router actionPath=static\\static.servemodule controller=static\\static method=servemodule -DEBUG 2018/09/23 09:45:52 revel router.go:415: splitActionPath: Split Storing recognized action path static\static.servemodule(static\,public) for route &revel.Route{ModuleSource:(*revel.Module)(0xc420069200), Method:"GET", Path:"/public/static/*filepath", Action:"static\\Static.ServeModule", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string{"static\\", "public"}, TreePath:"/GET/public/static/*filepath", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/modules/static/conf/routes", line:6} section=router actionPath=static\\static.servemodule controller=static\\static method=servemodule -DEBUG 2018/09/23 09:45:52 revel router.go:119: NewRoute: New splitActionPath path:/ action:Application.Index section=router -DEBUG 2018/09/23 09:45:52 revel router.go:314: splitActionPath: Check for namespace section=router actionPath=application.index controller=application method=index -INFO 2018/09/23 09:45:52 revel router.go:336: Found controller for path section=router actionPath=application.index controller=application method=index controllerType="&{Namespace:App\\ ModuleSource:0xd804c0 Type:controllers.Application Methods:[0xc420079220 0xc420079270 0xc4200792c0 0xc420079310 0xc420079360 0xc4200793b0] ControllerIndexes:[[0 0]] ControllerEvents:0xc4200694a0}" -DEBUG 2018/09/23 09:45:52 revel router.go:415: splitActionPath: Split Storing recognized action path application.index for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"GET", Path:"/", Action:"Application.Index", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:8} section=router actionPath=application.index controller=application method=index -DEBUG 2018/09/23 09:45:52 revel router.go:421: splitActionPath: Split Storing recognized action path app\application.index for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"GET", Path:"/", Action:"Application.Index", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:8} section=router actionPath=application.index controller=application method=index -DEBUG 2018/09/23 09:45:52 revel router.go:119: NewRoute: New splitActionPath path:/hotels action:Hotels.Index section=router -DEBUG 2018/09/23 09:45:52 revel router.go:314: splitActionPath: Check for namespace section=router actionPath=hotels.index controller=hotels method=index -INFO 2018/09/23 09:45:52 revel router.go:336: Found controller for path section=router actionPath=hotels.index controller=hotels method=index controllerType="&{Namespace:App\\ ModuleSource:0xd804c0 Type:controllers.Hotels Methods:[0xc420079540 0xc420079590 0xc420079630 0xc420079680 0xc4200796d0 0xc420079720 0xc420079770 0xc4200797c0] ControllerIndexes:[[0 0 0]] ControllerEvents:0xc42027fce0}" -DEBUG 2018/09/23 09:45:52 revel router.go:415: splitActionPath: Split Storing recognized action path hotels.index for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"GET", Path:"/hotels", Action:"Hotels.Index", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/hotels", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:9} section=router actionPath=hotels.index controller=hotels method=index -DEBUG 2018/09/23 09:45:52 revel router.go:421: splitActionPath: Split Storing recognized action path app\hotels.index for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"GET", Path:"/hotels", Action:"Hotels.Index", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/hotels", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:9} section=router actionPath=hotels.index controller=hotels method=index -DEBUG 2018/09/23 09:45:52 revel router.go:119: NewRoute: New splitActionPath path:/hotels/list action:Hotels.List section=router -DEBUG 2018/09/23 09:45:52 revel router.go:314: splitActionPath: Check for namespace section=router actionPath=hotels.list controller=hotels method=list -INFO 2018/09/23 09:45:52 revel router.go:336: Found controller for path section=router actionPath=hotels.list controller=hotels method=list controllerType="&{Namespace:App\\ ModuleSource:0xd804c0 Type:controllers.Hotels Methods:[0xc420079540 0xc420079590 0xc420079630 0xc420079680 0xc4200796d0 0xc420079720 0xc420079770 0xc4200797c0] ControllerIndexes:[[0 0 0]] ControllerEvents:0xc42027fce0}" -DEBUG 2018/09/23 09:45:52 revel router.go:415: splitActionPath: Split Storing recognized action path hotels.list for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"GET", Path:"/hotels/list", Action:"Hotels.List", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/hotels/list", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:10} section=router actionPath=hotels.list controller=hotels method=list -DEBUG 2018/09/23 09:45:52 revel router.go:421: splitActionPath: Split Storing recognized action path app\hotels.list for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"GET", Path:"/hotels/list", Action:"Hotels.List", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/hotels/list", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:10} section=router actionPath=hotels.list controller=hotels method=list -DEBUG 2018/09/23 09:45:52 revel router.go:119: NewRoute: New splitActionPath path:/hotels/:id action:Hotels.Show section=router -DEBUG 2018/09/23 09:45:52 revel router.go:314: splitActionPath: Check for namespace section=router actionPath=hotels.show controller=hotels method=show -INFO 2018/09/23 09:45:52 revel router.go:336: Found controller for path section=router actionPath=hotels.show controller=hotels method=show controllerType="&{Namespace:App\\ ModuleSource:0xd804c0 Type:controllers.Hotels Methods:[0xc420079540 0xc420079590 0xc420079630 0xc420079680 0xc4200796d0 0xc420079720 0xc420079770 0xc4200797c0] ControllerIndexes:[[0 0 0]] ControllerEvents:0xc42027fce0}" -DEBUG 2018/09/23 09:45:52 revel router.go:415: splitActionPath: Split Storing recognized action path hotels.show for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"GET", Path:"/hotels/:id", Action:"Hotels.Show", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/hotels/:id", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:11} section=router actionPath=hotels.show controller=hotels method=show -DEBUG 2018/09/23 09:45:52 revel router.go:421: splitActionPath: Split Storing recognized action path app\hotels.show for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"GET", Path:"/hotels/:id", Action:"Hotels.Show", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/hotels/:id", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:11} section=router actionPath=hotels.show controller=hotels method=show -DEBUG 2018/09/23 09:45:52 revel router.go:119: NewRoute: New splitActionPath path:/hotels/:id/booking action:Hotels.Book section=router -DEBUG 2018/09/23 09:45:52 revel router.go:314: splitActionPath: Check for namespace section=router actionPath=hotels.book controller=hotels method=book -INFO 2018/09/23 09:45:52 revel router.go:336: Found controller for path section=router actionPath=hotels.book controller=hotels method=book controllerType="&{Namespace:App\\ ModuleSource:0xd804c0 Type:controllers.Hotels Methods:[0xc420079540 0xc420079590 0xc420079630 0xc420079680 0xc4200796d0 0xc420079720 0xc420079770 0xc4200797c0] ControllerIndexes:[[0 0 0]] ControllerEvents:0xc42027fce0}" -DEBUG 2018/09/23 09:45:52 revel router.go:415: splitActionPath: Split Storing recognized action path hotels.book for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"GET", Path:"/hotels/:id/booking", Action:"Hotels.Book", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/hotels/:id/booking", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:12} section=router actionPath=hotels.book controller=hotels method=book -DEBUG 2018/09/23 09:45:52 revel router.go:421: splitActionPath: Split Storing recognized action path app\hotels.book for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"GET", Path:"/hotels/:id/booking", Action:"Hotels.Book", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/hotels/:id/booking", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:12} section=router actionPath=hotels.book controller=hotels method=book -DEBUG 2018/09/23 09:45:52 revel router.go:119: NewRoute: New splitActionPath path:/hotels/:id/booking action:Hotels.ConfirmBooking section=router -DEBUG 2018/09/23 09:45:52 revel router.go:314: splitActionPath: Check for namespace section=router actionPath=hotels.confirmbooking controller=hotels method=confirmbooking -INFO 2018/09/23 09:45:52 revel router.go:336: Found controller for path section=router actionPath=hotels.confirmbooking controller=hotels method=confirmbooking controllerType="&{Namespace:App\\ ModuleSource:0xd804c0 Type:controllers.Hotels Methods:[0xc420079540 0xc420079590 0xc420079630 0xc420079680 0xc4200796d0 0xc420079720 0xc420079770 0xc4200797c0] ControllerIndexes:[[0 0 0]] ControllerEvents:0xc42027fce0}" -DEBUG 2018/09/23 09:45:52 revel router.go:415: splitActionPath: Split Storing recognized action path hotels.confirmbooking for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"POST", Path:"/hotels/:id/booking", Action:"Hotels.ConfirmBooking", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/POST/hotels/:id/booking", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:13} section=router actionPath=hotels.confirmbooking controller=hotels method=confirmbooking -DEBUG 2018/09/23 09:45:52 revel router.go:421: splitActionPath: Split Storing recognized action path app\hotels.confirmbooking for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"POST", Path:"/hotels/:id/booking", Action:"Hotels.ConfirmBooking", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/POST/hotels/:id/booking", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:13} section=router actionPath=hotels.confirmbooking controller=hotels method=confirmbooking -DEBUG 2018/09/23 09:45:52 revel router.go:119: NewRoute: New splitActionPath path:/bookings/:id/cancel action:Hotels.CancelBooking section=router -DEBUG 2018/09/23 09:45:52 revel router.go:314: splitActionPath: Check for namespace section=router actionPath=hotels.cancelbooking controller=hotels method=cancelbooking -INFO 2018/09/23 09:45:52 revel router.go:336: Found controller for path section=router actionPath=hotels.cancelbooking controller=hotels method=cancelbooking controllerType="&{Namespace:App\\ ModuleSource:0xd804c0 Type:controllers.Hotels Methods:[0xc420079540 0xc420079590 0xc420079630 0xc420079680 0xc4200796d0 0xc420079720 0xc420079770 0xc4200797c0] ControllerIndexes:[[0 0 0]] ControllerEvents:0xc42027fce0}" -DEBUG 2018/09/23 09:45:52 revel router.go:415: splitActionPath: Split Storing recognized action path hotels.cancelbooking for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"POST", Path:"/bookings/:id/cancel", Action:"Hotels.CancelBooking", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/POST/bookings/:id/cancel", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:14} section=router actionPath=hotels.cancelbooking controller=hotels method=cancelbooking -DEBUG 2018/09/23 09:45:52 revel router.go:421: splitActionPath: Split Storing recognized action path app\hotels.cancelbooking for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"POST", Path:"/bookings/:id/cancel", Action:"Hotels.CancelBooking", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/POST/bookings/:id/cancel", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:14} section=router actionPath=hotels.cancelbooking controller=hotels method=cancelbooking -DEBUG 2018/09/23 09:45:52 revel router.go:119: NewRoute: New splitActionPath path:/register action:Application.Register section=router -DEBUG 2018/09/23 09:45:52 revel router.go:314: splitActionPath: Check for namespace section=router actionPath=application.register controller=application method=register -INFO 2018/09/23 09:45:52 revel router.go:336: Found controller for path section=router actionPath=application.register controller=application method=register controllerType="&{Namespace:App\\ ModuleSource:0xd804c0 Type:controllers.Application Methods:[0xc420079220 0xc420079270 0xc4200792c0 0xc420079310 0xc420079360 0xc4200793b0] ControllerIndexes:[[0 0]] ControllerEvents:0xc4200694a0}" -DEBUG 2018/09/23 09:45:52 revel router.go:415: splitActionPath: Split Storing recognized action path application.register for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"GET", Path:"/register", Action:"Application.Register", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/register", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:15} section=router actionPath=application.register controller=application method=register -DEBUG 2018/09/23 09:45:52 revel router.go:421: splitActionPath: Split Storing recognized action path app\application.register for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"GET", Path:"/register", Action:"Application.Register", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/register", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:15} section=router actionPath=application.register controller=application method=register -DEBUG 2018/09/23 09:45:52 revel router.go:119: NewRoute: New splitActionPath path:/register action:Application.SaveUser section=router -DEBUG 2018/09/23 09:45:52 revel router.go:314: splitActionPath: Check for namespace section=router actionPath=application.saveuser controller=application method=saveuser -INFO 2018/09/23 09:45:52 revel router.go:336: Found controller for path section=router actionPath=application.saveuser controller=application method=saveuser controllerType="&{Namespace:App\\ ModuleSource:0xd804c0 Type:controllers.Application Methods:[0xc420079220 0xc420079270 0xc4200792c0 0xc420079310 0xc420079360 0xc4200793b0] ControllerIndexes:[[0 0]] ControllerEvents:0xc4200694a0}" -DEBUG 2018/09/23 09:45:52 revel router.go:415: splitActionPath: Split Storing recognized action path application.saveuser for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"POST", Path:"/register", Action:"Application.SaveUser", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/POST/register", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:16} section=router actionPath=application.saveuser controller=application method=saveuser -DEBUG 2018/09/23 09:45:52 revel router.go:421: splitActionPath: Split Storing recognized action path app\application.saveuser for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"POST", Path:"/register", Action:"Application.SaveUser", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/POST/register", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:16} section=router actionPath=application.saveuser controller=application method=saveuser -DEBUG 2018/09/23 09:45:52 revel router.go:119: NewRoute: New splitActionPath path:/settings action:Hotels.Settings section=router -DEBUG 2018/09/23 09:45:52 revel router.go:314: splitActionPath: Check for namespace section=router actionPath=hotels.settings controller=hotels method=settings -INFO 2018/09/23 09:45:52 revel router.go:336: Found controller for path section=router actionPath=hotels.settings controller=hotels method=settings controllerType="&{Namespace:App\\ ModuleSource:0xd804c0 Type:controllers.Hotels Methods:[0xc420079540 0xc420079590 0xc420079630 0xc420079680 0xc4200796d0 0xc420079720 0xc420079770 0xc4200797c0] ControllerIndexes:[[0 0 0]] ControllerEvents:0xc42027fce0}" -DEBUG 2018/09/23 09:45:52 revel router.go:415: splitActionPath: Split Storing recognized action path hotels.settings for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"GET", Path:"/settings", Action:"Hotels.Settings", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/settings", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:17} section=router actionPath=hotels.settings controller=hotels method=settings -DEBUG 2018/09/23 09:45:52 revel router.go:421: splitActionPath: Split Storing recognized action path app\hotels.settings for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"GET", Path:"/settings", Action:"Hotels.Settings", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/settings", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:17} section=router actionPath=hotels.settings controller=hotels method=settings -DEBUG 2018/09/23 09:45:52 revel router.go:119: NewRoute: New splitActionPath path:/settings action:Hotels.SaveSettings section=router -DEBUG 2018/09/23 09:45:52 revel router.go:314: splitActionPath: Check for namespace section=router actionPath=hotels.savesettings controller=hotels method=savesettings -INFO 2018/09/23 09:45:52 revel router.go:336: Found controller for path section=router actionPath=hotels.savesettings controller=hotels method=savesettings controllerType="&{Namespace:App\\ ModuleSource:0xd804c0 Type:controllers.Hotels Methods:[0xc420079540 0xc420079590 0xc420079630 0xc420079680 0xc4200796d0 0xc420079720 0xc420079770 0xc4200797c0] ControllerIndexes:[[0 0 0]] ControllerEvents:0xc42027fce0}" -DEBUG 2018/09/23 09:45:52 revel router.go:415: splitActionPath: Split Storing recognized action path hotels.savesettings for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"POST", Path:"/settings", Action:"Hotels.SaveSettings", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/POST/settings", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:18} section=router actionPath=hotels.savesettings controller=hotels method=savesettings -DEBUG 2018/09/23 09:45:52 revel router.go:421: splitActionPath: Split Storing recognized action path app\hotels.savesettings for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"POST", Path:"/settings", Action:"Hotels.SaveSettings", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/POST/settings", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:18} section=router actionPath=hotels.savesettings controller=hotels method=savesettings -DEBUG 2018/09/23 09:45:52 revel router.go:119: NewRoute: New splitActionPath path:/login action:Application.Login section=router -DEBUG 2018/09/23 09:45:52 revel router.go:314: splitActionPath: Check for namespace section=router actionPath=application.login controller=application method=login -INFO 2018/09/23 09:45:52 revel router.go:336: Found controller for path section=router actionPath=application.login controller=application method=login controllerType="&{Namespace:App\\ ModuleSource:0xd804c0 Type:controllers.Application Methods:[0xc420079220 0xc420079270 0xc4200792c0 0xc420079310 0xc420079360 0xc4200793b0] ControllerIndexes:[[0 0]] ControllerEvents:0xc4200694a0}" -DEBUG 2018/09/23 09:45:52 revel router.go:415: splitActionPath: Split Storing recognized action path application.login for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"POST", Path:"/login", Action:"Application.Login", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/POST/login", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:19} section=router actionPath=application.login controller=application method=login -DEBUG 2018/09/23 09:45:52 revel router.go:421: splitActionPath: Split Storing recognized action path app\application.login for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"POST", Path:"/login", Action:"Application.Login", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/POST/login", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:19} section=router actionPath=application.login controller=application method=login -DEBUG 2018/09/23 09:45:52 revel router.go:119: NewRoute: New splitActionPath path:/logout action:Application.Logout section=router -DEBUG 2018/09/23 09:45:52 revel router.go:314: splitActionPath: Check for namespace section=router actionPath=application.logout controller=application method=logout -INFO 2018/09/23 09:45:52 revel router.go:336: Found controller for path section=router actionPath=application.logout controller=application method=logout controllerType="&{Namespace:App\\ ModuleSource:0xd804c0 Type:controllers.Application Methods:[0xc420079220 0xc420079270 0xc4200792c0 0xc420079310 0xc420079360 0xc4200793b0] ControllerIndexes:[[0 0]] ControllerEvents:0xc4200694a0}" -DEBUG 2018/09/23 09:45:52 revel router.go:415: splitActionPath: Split Storing recognized action path application.logout for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"GET", Path:"/logout", Action:"Application.Logout", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/logout", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:20} section=router actionPath=application.logout controller=application method=logout -DEBUG 2018/09/23 09:45:52 revel router.go:421: splitActionPath: Split Storing recognized action path app\application.logout for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"GET", Path:"/logout", Action:"Application.Logout", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/logout", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:20} section=router actionPath=application.logout controller=application method=logout -DEBUG 2018/09/23 09:45:52 revel router.go:119: NewRoute: New splitActionPath path:/public/*filepath action:Static.Serve section=router -DEBUG 2018/09/23 09:45:52 revel router.go:314: splitActionPath: Check for namespace section=router actionPath=static.serve controller=static method=serve -INFO 2018/09/23 09:45:52 revel router.go:336: Found controller for path section=router actionPath=static.serve controller=static method=serve controllerType= -DEBUG 2018/09/23 09:45:52 revel router.go:415: splitActionPath: Split Storing recognized action path static.serve(public) for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"GET", Path:"/public/*filepath", Action:"Static.Serve", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string{"public"}, TreePath:"/GET/public/*filepath", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:23} section=router actionPath=static.serve controller=static method=serve -DEBUG 2018/09/23 09:45:52 revel router.go:421: splitActionPath: Split Storing recognized action path static\static.serve(public) for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"GET", Path:"/public/*filepath", Action:"Static.Serve", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string{"public"}, TreePath:"/GET/public/*filepath", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:23} section=router actionPath=static.serve controller=static method=serve -DEBUG 2018/09/23 09:45:52 revel router.go:119: NewRoute: New splitActionPath path:/dir/ action:Static.ServeDir section=router -DEBUG 2018/09/23 09:45:52 revel router.go:314: splitActionPath: Check for namespace section=router actionPath=static.servedir controller=static method=servedir -INFO 2018/09/23 09:45:52 revel router.go:336: Found controller for path section=router actionPath=static.servedir controller=static method=servedir controllerType= -DEBUG 2018/09/23 09:45:52 revel router.go:415: splitActionPath: Split Storing recognized action path static.servedir(public) for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"GET", Path:"/dir/", Action:"Static.ServeDir", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string{"public"}, TreePath:"/GET/dir/", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:24} section=router actionPath=static.servedir controller=static method=servedir -DEBUG 2018/09/23 09:45:52 revel router.go:421: splitActionPath: Split Storing recognized action path static\static.servedir(public) for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"GET", Path:"/dir/", Action:"Static.ServeDir", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string{"public"}, TreePath:"/GET/dir/", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:24} section=router actionPath=static.servedir controller=static method=servedir -DEBUG 2018/09/23 09:45:52 revel router.go:119: NewRoute: New splitActionPath path:/dir/*filepath action:Static.ServeDir section=router -DEBUG 2018/09/23 09:45:52 revel router.go:314: splitActionPath: Check for namespace section=router actionPath=static.servedir controller=static method=servedir -INFO 2018/09/23 09:45:52 revel router.go:336: Found controller for path section=router actionPath=static.servedir controller=static method=servedir controllerType= -DEBUG 2018/09/23 09:45:52 revel router.go:415: splitActionPath: Split Storing recognized action path static.servedir(public) for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"GET", Path:"/dir/*filepath", Action:"Static.ServeDir", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string{"public"}, TreePath:"/GET/dir/*filepath", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:25} section=router actionPath=static.servedir controller=static method=servedir -DEBUG 2018/09/23 09:45:52 revel router.go:421: splitActionPath: Split Storing recognized action path static\static.servedir(public) for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"GET", Path:"/dir/*filepath", Action:"Static.ServeDir", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string{"public"}, TreePath:"/GET/dir/*filepath", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:25} section=router actionPath=static.servedir controller=static method=servedir -DEBUG 2018/09/23 09:45:52 revel router.go:119: NewRoute: New splitActionPath path:/favicon.ico action:Static.Serve section=router -DEBUG 2018/09/23 09:45:52 revel router.go:314: splitActionPath: Check for namespace section=router actionPath=static.serve controller=static method=serve -INFO 2018/09/23 09:45:52 revel router.go:336: Found controller for path section=router actionPath=static.serve controller=static method=serve controllerType= -DEBUG 2018/09/23 09:45:52 revel router.go:415: splitActionPath: Split Storing recognized action path static.serve(public/img,favicon.png) for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"GET", Path:"/favicon.ico", Action:"Static.Serve", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string{"public/img", "favicon.png"}, TreePath:"/GET/favicon.ico", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:26} section=router actionPath=static.serve controller=static method=serve -DEBUG 2018/09/23 09:45:52 revel router.go:421: splitActionPath: Split Storing recognized action path static\static.serve(public/img,favicon.png) for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"GET", Path:"/favicon.ico", Action:"Static.Serve", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string{"public/img", "favicon.png"}, TreePath:"/GET/favicon.ico", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:26} section=router actionPath=static.serve controller=static method=serve -DEBUG 2018/09/23 09:45:52 revel router.go:119: NewRoute: New splitActionPath path:/:controller/:action action::controller.:action section=router -DEBUG 2018/09/23 09:45:52 revel router.go:314: splitActionPath: Check for namespace section=router actionPath=:controller.:action controller=:controller method=:action -DEBUG 2018/09/23 09:45:52 revel router.go:415: splitActionPath: Split Storing recognized action path :controller.:action for route &revel.Route{ModuleSource:(*revel.Module)(0xd804c0), Method:"*", Path:"/:controller/:action", Action:":controller.:action", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/:METHOD/:controller/:action", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes", line:29} section=router actionPath=:controller.:action controller=:controller method=:action -INFO 2018/09/23 09:45:52 app plugin.go:29: Go to /@jobs to see job status. -INFO 2018/09/23 09:45:52 app plugin.go:9: Go to /@tests to run the tests. -INFO 2018/09/23 09:45:52 app dbgorp.go:206: create table "User" ("UserId" integer not null primary key autoincrement, "Name" varchar(100), "Username" varchar(20), "HashedPassword" blob) ; [] (459.598µs) section=gorp -INFO 2018/09/23 09:45:52 app dbgorp.go:206: create table "Hotel" ("HotelId" integer not null primary key autoincrement, "Name" varchar(50), "Address" varchar(100), "City" varchar(40), "State" varchar(6), "Zip" varchar(6), "Country" varchar(40), "Price" integer) ; [] (66.941µs) section=gorp -INFO 2018/09/23 09:45:52 app dbgorp.go:206: create table "Booking" ("BookingId" integer not null primary key autoincrement, "UserId" integer, "HotelId" integer, "CheckInStr" varchar(255), "CheckOutStr" varchar(255), "CardNumber" varchar(16), "NameOnCard" varchar(50), "CardExpMonth" integer, "CardExpYear" integer, "Smoking" integer, "Beds" integer) ; [] (69.368µs) section=gorp -INFO 2018/09/23 09:45:52 app dbgorp.go:206: insert into "User" ("UserId","Name","Username","HashedPassword") values (null,?,?,?); [1:"Demo User" 2:"demo" 3:[36 50 97 36 49 48 36 53 88 101 48 83 107 108 116 56 104 81 52 115 69 77 72 79 66 84 49 107 46 80 86 54 100 70 55 78 86 105 83 113 120 77 52 75 79 53 118 79 107 70 111 85 54 105 66 100 57 89 101 97]] (42.352µs) section=gorp -INFO 2018/09/23 09:45:52 app dbgorp.go:206: insert into "Hotel" ("HotelId","Name","Address","City","State","Zip","Country","Price") values (null,?,?,?,?,?,?,?); [1:"Marriott Courtyard" 2:"Tower Pl, Buckhead" 3:"Atlanta" 4:"GA" 5:"30305" 6:"USA" 7:120] (39.076µs) section=gorp -INFO 2018/09/23 09:45:52 app dbgorp.go:206: insert into "Hotel" ("HotelId","Name","Address","City","State","Zip","Country","Price") values (null,?,?,?,?,?,?,?); [1:"W Hotel" 2:"Union Square, Manhattan" 3:"New York" 4:"NY" 5:"10011" 6:"USA" 7:450] (37.643µs) section=gorp -INFO 2018/09/23 09:45:52 app dbgorp.go:206: insert into "Hotel" ("HotelId","Name","Address","City","State","Zip","Country","Price") values (null,?,?,?,?,?,?,?); [1:"Hotel Rouge" 2:"1315 16th St NW" 3:"Washington" 4:"DC" 5:"20036" 6:"USA" 7:250] (37.786µs) section=gorp -INFO 2018/09/23 09:45:52 app dbgorp.go:206: insert into "Booking" ("BookingId","UserId","HotelId","CheckInStr","CheckOutStr","CardNumber","NameOnCard","CardExpMonth","CardExpYear","Smoking","Beds") values (null,?,?,?,?,?,?,?,?,?,?); [1:1 2:1 3:"2018-09-23" 4:"2018-09-23" 5:"id1" 6:"n1" 7:12 8:2 9:false 10:2] (39.046µs) section=gorp -INFO 2018/09/23 09:45:52 app dbgorp.go:206: insert into "Booking" ("BookingId","UserId","HotelId","CheckInStr","CheckOutStr","CardNumber","NameOnCard","CardExpMonth","CardExpYear","Smoking","Beds") values (null,?,?,?,?,?,?,?,?,?,?); [1:1 2:2 3:"2018-09-23" 4:"2018-09-23" 5:"id2" 6:"n2" 7:12 8:2 9:false 10:2] (39.207µs) section=gorp -INFO 2018/09/23 09:45:52 app dbgorp.go:206: insert into "Booking" ("BookingId","UserId","HotelId","CheckInStr","CheckOutStr","CardNumber","NameOnCard","CardExpMonth","CardExpYear","Smoking","Beds") values (null,?,?,?,?,?,?,?,?,?,?); [1:1 2:3 3:"2018-09-23" 4:"2018-09-23" 5:"id3" 6:"n3" 7:12 8:2 9:false 10:2] (35.808µs) section=gorp -DEBUG 2018/09/23 09:45:52 revel template.go:116: Refresh: Refreshing templates from section=template path="[/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/app/views /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates /tmp/release/v0.20.0/go/src/github.com/revel/modules/jobs/app/views /tmp/release/v0.20.0/go/src/github.com/revel/modules/static/app/views /tmp/release/v0.20.0/go/src/github.com/revel/modules/testrunner/app/views]" -DEBUG 2018/09/23 09:45:52 revel template_engine.go:66: CreateTemplateEngine: init templates section=template name=go -DEBUG 2018/09/23 09:45:52 revel template.go:144: Refresh: Refreshing templates from section=template path="[/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/app/views /tmp/release/v0.20.0/go/src/github.com/revel/modules/testrunner/app/views /tmp/release/v0.20.0/go/src/github.com/revel/modules/jobs/app/views /tmp/release/v0.20.0/go/src/github.com/revel/modules/static/app/views /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates]" -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/app/views/Hotels/book.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/app/views/Hotels/confirmbooking.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/app/views/Hotels/index.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/app/views/Hotels/list.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/app/views/Hotels/settings.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/app/views/Hotels/show.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/app/views/application/index.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/app/views/application/register.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/app/views/footer.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/app/views/header.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/modules/testrunner/app/views/TestRunner/FailureDetail.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/modules/testrunner/app/views/TestRunner/Index.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/modules/testrunner/app/views/TestRunner/SuiteResult.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/modules/jobs/app/views/Jobs/Status.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/modules/jobs/app/views/errors/401.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/modules/static/app/views/static/folder-view.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/modules/static/app/views/static/footer.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/modules/static/app/views/static/header.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/403.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/403.json section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/403.txt section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/403.xml section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/404-dev.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/404.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/404.json section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/404.txt section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/404.xml section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/405.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/405.json section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/405.txt section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/405.xml section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/500-dev.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/500.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/500.json section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/500.txt section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/500.xml section=template -INFO 2018/09/23 09:45:52 revel watcher.go:242: Waiting for refresh timer to expire section=util -DEBUG 2018/09/23 09:45:52 revel template.go:116: Refresh: Refreshing templates from section=template path="[/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/app/views /tmp/release/v0.20.0/go/src/github.com/revel/modules/testrunner/app/views /tmp/release/v0.20.0/go/src/github.com/revel/modules/jobs/app/views /tmp/release/v0.20.0/go/src/github.com/revel/modules/static/app/views /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates]" -DEBUG 2018/09/23 09:45:52 revel template_engine.go:66: CreateTemplateEngine: init templates section=template name=go -DEBUG 2018/09/23 09:45:52 revel template.go:144: Refresh: Refreshing templates from section=template path="[/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/app/views /tmp/release/v0.20.0/go/src/github.com/revel/modules/testrunner/app/views /tmp/release/v0.20.0/go/src/github.com/revel/modules/jobs/app/views /tmp/release/v0.20.0/go/src/github.com/revel/modules/static/app/views /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates]" -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/app/views/Hotels/book.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/app/views/Hotels/confirmbooking.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/app/views/Hotels/index.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/app/views/Hotels/list.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/app/views/Hotels/settings.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/app/views/Hotels/show.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/app/views/application/index.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/app/views/application/register.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/app/views/footer.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/app/views/header.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/modules/testrunner/app/views/TestRunner/FailureDetail.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/modules/testrunner/app/views/TestRunner/Index.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/modules/testrunner/app/views/TestRunner/SuiteResult.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/modules/jobs/app/views/Jobs/Status.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/modules/jobs/app/views/errors/401.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/modules/static/app/views/static/folder-view.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/modules/static/app/views/static/footer.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/modules/static/app/views/static/header.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/403.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/403.json section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/403.txt section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/403.xml section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/404-dev.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/404.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/404.json section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/404.txt section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/404.xml section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/405.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/405.json section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/405.txt section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/405.xml section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/500-dev.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/500.html section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/500.json section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/500.txt section=template -DEBUG 2018/09/23 09:45:52 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.20.0/go/src/github.com/revel/revel/templates/errors/500.xml section=template -INFO 2018/09/23 09:45:52 revel watcher.go:263: Rebuilt, result section=util error=nil -DEBUG 2018/09/23 09:45:52 revel i18n.go:241: Unable to read locale cookie section=i18n name=REVEL_LANG error="http: named cookie not present" -DEBUG 2018/09/23 09:45:52 revel i18n.go:208: Unable to find locale in cookie or header, using empty string section=i18n -INFO 2018/09/23 09:45:52 testrunner server-engine.go:168: Request Stats ip=127.0.0.1 path=/@tests.list method=GET start=2018/09/23 09:45:52 status=200 duration_seconds=0.0149325 section=requestlog -DEBUG 2018/09/23 09:45:52 revel i18n.go:241: Unable to read locale cookie section=i18n name=REVEL_LANG error="http: named cookie not present" -DEBUG 2018/09/23 09:45:52 revel i18n.go:208: Unable to find locale in cookie or header, using empty string section=i18n -DEBUG 2018/09/23 09:45:52 revel i18n.go:241: Unable to read locale cookie section=i18n name=REVEL_LANG error="http: named cookie not present" -DEBUG 2018/09/23 09:45:52 revel i18n.go:208: Unable to find locale in cookie or header, using empty string section=i18n -INFO 2018/09/23 09:45:52 app dbgorp.go:206: begin; [] (33.144µs) section=gorp -INFO 2018/09/23 09:45:52 app dbgorp.go:206: commit; [] (14.434µs) section=gorp -DEBUG 2018/09/23 09:45:52 revel router.go:624: Checking for route section=router action=Application.Login pathdataRoute="&{ModuleSource:0xd804c0 Method:POST Path:/login Action:Application.Login ControllerNamespace:App\\ ControllerName:application MethodName:login FixedParams:[] TreePath:/POST/login TypeOfController:0xc420069440 routesPath:/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes line:19}" -DEBUG 2018/09/23 09:45:52 revel router.go:624: Checking for route section=router action=Application.Register pathdataRoute="&{ModuleSource:0xd804c0 Method:GET Path:/register Action:Application.Register ControllerNamespace:App\\ ControllerName:application MethodName:register FixedParams:[] TreePath:/GET/register TypeOfController:0xc420069440 routesPath:/tmp/release/v0.20.0/go/src/github.com/revel/examples/booking/conf/routes line:15}" -INFO 2018/09/23 09:45:52 app server-engine.go:168: Request Stats ip=127.0.0.1 path=/ method=GET action=Application.Index namespace=App\\ start=2018/09/23 09:45:52 status=200 duration_seconds=0.0005937 section=requestlog -INFO 2018/09/23 09:45:52 testrunner server-engine.go:168: Request Stats ip=127.0.0.1 path=/@tests/ApplicationTest/TestThatIndexPageWorks method=GET start=2018/09/23 09:45:52 status=200 duration_seconds=0.0014194 section=requestlog -INFO 2018/10/30 06:20:38 revel event.go:46: Raising event section=util len=5 -DEBUG 2018/10/30 06:20:38 revel server.go:28: RegisterServerEngine: Registered engine section=server name=go -DEBUG 2018/10/30 06:20:38 revel template_engine.go:45: Registered template engine loaded name=go section=template -DEBUG 2018/10/30 06:20:38 revel module.go:152: Sorted keys section=module keys=module.gorp -DEBUG 2018/10/30 06:20:38 revel module.go:152: Sorted keys section=module keys=module.jobs -DEBUG 2018/10/30 06:20:38 revel module.go:152: Sorted keys section=module keys=module.static -DEBUG 2018/10/30 06:20:38 revel module.go:152: Sorted keys section=module keys=module.testrunner -DEBUG 2018/10/30 06:20:38 gorp module.go:200: Loaded module section=module -DEBUG 2018/10/30 06:20:38 jobs module.go:200: Loaded module section=module -DEBUG 2018/10/30 06:20:38 static module.go:200: Loaded module section=module -DEBUG 2018/10/30 06:20:38 testrunner module.go:200: Loaded module section=module -DEBUG 2018/10/30 06:20:38 revel module.go:206: Found testrunner module, adding `tests` path section=module path=/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/tests -INFO 2018/10/30 06:20:38 revel event.go:46: Raising event section=util len=5 -INFO 2018/10/30 06:20:38 revel revel.go:184: Initialized Revel Version=0.21.0 BuildDate=2018-10-30 MinimumGoVersion=">= go1.8" -INFO 2018/10/30 06:20:38 app run.go:39: Running revel server -DEBUG 2018/10/30 06:20:38 revel controller_type.go:65: Registered controller: App\application section=controller -DEBUG 2018/10/30 06:20:38 revel controller.go:545: RegisterController:Registered controllersection=controller controller=App\\application -DEBUG 2018/10/30 06:20:38 revel controller_type.go:65: Registered controller: App\hotels section=controller -DEBUG 2018/10/30 06:20:38 revel controller.go:545: RegisterController:Registered controller section=controller controller=App\\hotels -DEBUG 2018/10/30 06:20:38 revel controller_type.go:65: Registered controller: jobs\jobs section=controller -DEBUG 2018/10/30 06:20:38 revel controller.go:545: RegisterController:Registered controller section=controller controller=jobs\\jobs -DEBUG 2018/10/30 06:20:38 revel controller_type.go:65: Registered controller: gorp\controller section=controller -DEBUG 2018/10/30 06:20:38 revel controller.go:545: RegisterController:Registered controller section=controller controller=gorp\\controller -DEBUG 2018/10/30 06:20:38 revel controller_type.go:65: Registered controller: static\static section=controller -DEBUG 2018/10/30 06:20:38 revel controller.go:545: RegisterController:Registered controller section=controller controller=static\\static -DEBUG 2018/10/30 06:20:38 revel controller_type.go:65: Registered controller: testrunner\testrunner section=controller -DEBUG 2018/10/30 06:20:38 revel controller.go:545: RegisterController:Registered controller section=controller controller=testrunner\\testrunner -DEBUG 2018/10/30 06:20:38 revel server.go:123: InitServerEngine: Found server engine and invoking section=server name=go -INFO 2018/10/30 06:20:38 revel event.go:46: Raising event section=util len=6 -INFO 2018/10/30 06:20:38 revel revel_hooks.go:28: There is 12 hooks need to run ... section=server -INFO 2018/10/30 06:20:38 revel revel_hooks.go:31: Run the 1 hook ... section=util -INFO 2018/10/30 06:20:38 revel revel_hooks.go:31: Run the 2 hook ... section=util -DEBUG 2018/10/30 06:20:38 revel i18n.go:129: Importing messages from module: section=i18n importpath=/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/app -DEBUG 2018/10/30 06:20:38 revel i18n.go:129: Importing messages from module: section=i18n importpath=github.com/revel/modules/orm/gorp -DEBUG 2018/10/30 06:20:38 revel i18n.go:129: Importing messages from module: section=i18n importpath=github.com/revel/modules/jobs -DEBUG 2018/10/30 06:20:38 revel i18n.go:129: Importing messages from module: section=i18n importpath=github.com/revel/modules/static -DEBUG 2018/10/30 06:20:38 revel i18n.go:165: Successfully loaded messages from file file=static.en section=i18n -DEBUG 2018/10/30 06:20:38 revel i18n.go:129: Importing messages from module: section=i18n importpath=github.com/revel/modules/testrunner -INFO 2018/10/30 06:20:38 revel revel_hooks.go:31: Run the 3 hook ... section=util -INFO 2018/10/30 06:20:38 revel revel_hooks.go:31: Run the 4 hook ... section=util -INFO 2018/10/30 06:20:38 revel revel_hooks.go:31: Run the 5 hook ... section=util -INFO 2018/10/30 06:20:38 revel event.go:46: Raising event section=util len=6 -DEBUG 2018/10/30 06:20:38 revel router.go:120: NewRoute: New splitActionPath path:/@tests action:TestRunner.Index section=router -DEBUG 2018/10/30 06:20:38 revel router.go:315: splitActionPath: Check for namespace section=router actionPath=testrunner.index controller=testrunner method=index -INFO 2018/10/30 06:20:38 revel router.go:337: Found controller for path section=router actionPath=testrunner.index controller=testrunner method=index controllerType="&{Namespace:testrunner\\ ModuleSource:0xc42006d500 Type:controllers.TestRunner Methods:[0xc4203501e0 0xc420350230 0xc420350280 0xc4203502d0] ControllerIndexes:[[0]] ControllerEvents:0xc42034f9e0}" -DEBUG 2018/10/30 06:20:38 revel router.go:416: splitActionPath: Split Storing recognized action path testrunner.index for route &revel.Route{ModuleSource:(*revel.Module)(0xc42006d500), Method:"GET", Path:"/@tests", Action:"TestRunner.Index", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/@tests", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/modules/testrunner/conf/routes", line:0} section=router actionPath=testrunner.index controller=testrunner method=index -DEBUG 2018/10/30 06:20:38 revel router.go:422: splitActionPath: Split Storing recognized action path testrunner\testrunner.index for route &revel.Route{ModuleSource:(*revel.Module)(0xc42006d500), Method:"GET", Path:"/@tests", Action:"TestRunner.Index", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/@tests", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/modules/testrunner/conf/routes", line:0} section=router actionPath=testrunner.index controller=testrunner method=index -DEBUG 2018/10/30 06:20:38 revel router.go:120: NewRoute: New splitActionPath path:/@tests.list action:TestRunner.List section=router -DEBUG 2018/10/30 06:20:38 revel router.go:315: splitActionPath: Check for namespace section=router actionPath=testrunner.list controller=testrunner method=list -INFO 2018/10/30 06:20:38 revel router.go:337: Found controller for path actionPath=testrunner.list controller=testrunner method=list controllerType="&{Namespace:testrunner\\ ModuleSource:0xc42006d500 Type:controllers.TestRunner Methods:[0xc4203501e0 0xc420350230 0xc420350280 0xc4203502d0] ControllerIndexes:[[0]] ControllerEvents:0xc42034f9e0}" section=router -DEBUG 2018/10/30 06:20:38 revel router.go:416: splitActionPath: Split Storing recognized action path testrunner.list for route &revel.Route{ModuleSource:(*revel.Module)(0xc42006d500), Method:"GET", Path:"/@tests.list", Action:"TestRunner.List", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/@tests.list", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/modules/testrunner/conf/routes", line:1} actionPath=testrunner.list controller=testrunner method=list section=router -DEBUG 2018/10/30 06:20:38 revel router.go:422: splitActionPath: Split Storing recognized action path testrunner\testrunner.list for route &revel.Route{ModuleSource:(*revel.Module)(0xc42006d500), Method:"GET", Path:"/@tests.list", Action:"TestRunner.List", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/@tests.list", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/modules/testrunner/conf/routes", line:1} section=router actionPath=testrunner.list controller=testrunner method=list -DEBUG 2018/10/30 06:20:38 revel router.go:120: NewRoute: New splitActionPath path:/@tests/public/*filepath action:Static.ServeModule section=router -DEBUG 2018/10/30 06:20:38 revel router.go:315: splitActionPath: Check for namespace section=router actionPath=static.servemodule controller=static method=servemodule -INFO 2018/10/30 06:20:38 revel router.go:337: Found controller for path section=router actionPath=static.servemodule controller=static method=servemodule controllerType= -DEBUG 2018/10/30 06:20:38 revel router.go:416: splitActionPath: Split Storing recognized action path static.servemodule(testrunner,public) for route &revel.Route{ModuleSource:(*revel.Module)(0xc42006d500), Method:"GET", Path:"/@tests/public/*filepath", Action:"Static.ServeModule", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string{"testrunner", "public"}, TreePath:"/GET/@tests/public/*filepath", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/modules/testrunner/conf/routes", line:2} method=servemodule section=router actionPath=static.servemodule controller=static -DEBUG 2018/10/30 06:20:38 revel router.go:422: splitActionPath: Split Storing recognized action path static\static.servemodule(testrunner,public) for route &revel.Route{ModuleSource:(*revel.Module)(0xc42006d500), Method:"GET", Path:"/@tests/public/*filepath", Action:"Static.ServeModule", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string{"testrunner", "public"}, TreePath:"/GET/@tests/public/*filepath", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/modules/testrunner/conf/routes", line:2} actionPath=static.servemodule controller=static method=servemodule section=router -DEBUG 2018/10/30 06:20:38 revel router.go:120: NewRoute: New splitActionPath path:/@tests/:suite action:TestRunner.Suite section=router -DEBUG 2018/10/30 06:20:38 revel router.go:315: splitActionPath: Check for namespace controller=testrunner method=suite section=router actionPath=testrunner.suite -INFO 2018/10/30 06:20:38 revel router.go:337: Found controller for path actionPath=testrunner.suite controller=testrunner method=suite controllerType="&{Namespace:testrunner\\ ModuleSource:0xc42006d500 Type:controllers.TestRunner Methods:[0xc4203501e0 0xc420350230 0xc420350280 0xc4203502d0] ControllerIndexes:[[0]] ControllerEvents:0xc42034f9e0}" section=router -DEBUG 2018/10/30 06:20:38 revel router.go:416: splitActionPath: Split Storing recognized action path testrunner.suite for route &revel.Route{ModuleSource:(*revel.Module)(0xc42006d500), Method:"GET", Path:"/@tests/:suite", Action:"TestRunner.Suite", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/@tests/:suite", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/modules/testrunner/conf/routes", line:3} section=router actionPath=testrunner.suite controller=testrunner method=suite -DEBUG 2018/10/30 06:20:38 revel router.go:422: splitActionPath: Split Storing recognized action path testrunner\testrunner.suite for route &revel.Route{ModuleSource:(*revel.Module)(0xc42006d500), Method:"GET", Path:"/@tests/:suite", Action:"TestRunner.Suite", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/@tests/:suite", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/modules/testrunner/conf/routes", line:3} section=router actionPath=testrunner.suite controller=testrunner method=suite -DEBUG 2018/10/30 06:20:38 revel router.go:120: NewRoute: New splitActionPath path:/@tests/:suite/:test action:TestRunner.Run section=router -DEBUG 2018/10/30 06:20:38 revel router.go:315: splitActionPath: Check for namespace section=router actionPath=testrunner.run controller=testrunner method=run -INFO 2018/10/30 06:20:38 revel router.go:337: Found controller for path actionPath=testrunner.run controller=testrunner method=run controllerType="&{Namespace:testrunner\\ ModuleSource:0xc42006d500 Type:controllers.TestRunner Methods:[0xc4203501e0 0xc420350230 0xc420350280 0xc4203502d0] ControllerIndexes:[[0]] ControllerEvents:0xc42034f9e0}" section=router -DEBUG 2018/10/30 06:20:38 revel router.go:416: splitActionPath: Split Storing recognized action path testrunner.run for route &revel.Route{ModuleSource:(*revel.Module)(0xc42006d500), Method:"GET", Path:"/@tests/:suite/:test", Action:"TestRunner.Run", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/@tests/:suite/:test", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/modules/testrunner/conf/routes", line:4} section=router actionPath=testrunner.run controller=testrunner method=run -DEBUG 2018/10/30 06:20:38 revel router.go:422: splitActionPath: Split Storing recognized action path testrunner\testrunner.run for route &revel.Route{ModuleSource:(*revel.Module)(0xc42006d500), Method:"GET", Path:"/@tests/:suite/:test", Action:"TestRunner.Run", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/@tests/:suite/:test", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/modules/testrunner/conf/routes", line:4} section=router actionPath=testrunner.run controller=testrunner method=run -DEBUG 2018/10/30 06:20:38 revel router.go:120: NewRoute: New splitActionPath path:/@jobs action:Jobs.Status section=router -DEBUG 2018/10/30 06:20:38 revel router.go:315: splitActionPath: Check for namespace method=status section=router actionPath=jobs.status controller=jobs -INFO 2018/10/30 06:20:38 revel router.go:337: Found controller for path section=router actionPath=jobs.status controller=jobs method=status controllerType="&{Namespace:jobs\\ ModuleSource:0xc42006d380 Type:controllers.Jobs Methods:[0xc420089b80] ControllerIndexes:[[0]] ControllerEvents:0xc4203441e0}" -DEBUG 2018/10/30 06:20:38 revel router.go:416: splitActionPath: Split Storing recognized action path jobs.status for route &revel.Route{ModuleSource:(*revel.Module)(0xc42006d380), Method:"GET", Path:"/@jobs", Action:"Jobs.Status", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/@jobs", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/modules/jobs/conf/routes", line:0} controller=jobs method=status section=router actionPath=jobs.status -DEBUG 2018/10/30 06:20:38 revel router.go:422: splitActionPath: Split Storing recognized action path jobs\jobs.status for route &revel.Route{ModuleSource:(*revel.Module)(0xc42006d380), Method:"GET", Path:"/@jobs", Action:"Jobs.Status", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/@jobs", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/modules/jobs/conf/routes", line:0} section=router actionPath=jobs.status controller=jobs method=status -DEBUG 2018/10/30 06:20:38 revel router.go:120: NewRoute: New splitActionPath path:/public/static/*filepath action:_LOCAL_\Static.ServeModule section=router -DEBUG 2018/10/30 06:20:38 revel router.go:315: splitActionPath: Check for namespace controller=static\\static method=servemodule section=router actionPath=static\\static.servemodule -DEBUG 2018/10/30 06:20:38 revel router.go:319: Found module namespace section=router actionPath=static\\static.servemodule controller=static\\static method=servemodule -DEBUG 2018/10/30 06:20:38 revel router.go:416: splitActionPath: Split Storing recognized action path static\static.servemodule(static\,public) for route &revel.Route{ModuleSource:(*revel.Module)(0xc42006d440), Method:"GET", Path:"/public/static/*filepath", Action:"static\\Static.ServeModule", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string{"static\\", "public"}, TreePath:"/GET/public/static/*filepath", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/modules/static/conf/routes", line:6} section=router actionPath=static\\static.servemodule controller=static\\static method=servemodule -DEBUG 2018/10/30 06:20:38 revel router.go:120: NewRoute: New splitActionPath path:/ action:Application.Index section=router -DEBUG 2018/10/30 06:20:38 revel router.go:315: splitActionPath: Check for namespace controller=application method=index section=router actionPath=application.index -INFO 2018/10/30 06:20:38 revel router.go:337: Found controller for path section=router actionPath=application.index controller=application method=index controllerType="&{Namespace:App\\ ModuleSource:0xe60f60 Type:controllers.Application Methods:[0xc420089270 0xc4200892c0 0xc420089310 0xc420089360 0xc4200893b0 0xc420089400] ControllerIndexes:[[0 0]] ControllerEvents:0xc42006d740}" -DEBUG 2018/10/30 06:20:38 revel router.go:416: splitActionPath: Split Storing recognized action path application.index for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"GET", Path:"/", Action:"Application.Index", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:8} section=router actionPath=application.index controller=application method=index -DEBUG 2018/10/30 06:20:38 revel router.go:422: splitActionPath: Split Storing recognized action path app\application.index for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"GET", Path:"/", Action:"Application.Index", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:8} method=index section=router actionPath=application.index controller=application -DEBUG 2018/10/30 06:20:38 revel router.go:120: NewRoute: New splitActionPath path:/hotels action:Hotels.Indexsection=router -DEBUG 2018/10/30 06:20:38 revel router.go:315: splitActionPath: Check for namespace section=router actionPath=hotels.index controller=hotels method=index -INFO 2018/10/30 06:20:38 revel router.go:337: Found controller for path controllerType="&{Namespace:App\\ ModuleSource:0xe60f60 Type:controllers.Hotels Methods:[0xc420089630 0xc420089680 0xc420089720 0xc420089770 0xc4200897c0 0xc420089810 0xc420089860 0xc4200898b0] ControllerIndexes:[[0 0 0]] ControllerEvents:0xc42031ff80}" section=router actionPath=hotels.index controller=hotels method=index -DEBUG 2018/10/30 06:20:38 revel router.go:416: splitActionPath: Split Storing recognized action path hotels.index for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"GET", Path:"/hotels", Action:"Hotels.Index", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/hotels", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:9} section=router actionPath=hotels.index controller=hotels method=index -DEBUG 2018/10/30 06:20:38 revel router.go:422: splitActionPath: Split Storing recognized action path app\hotels.index for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"GET", Path:"/hotels", Action:"Hotels.Index", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/hotels", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:9} method=index section=router actionPath=hotels.index controller=hotels -DEBUG 2018/10/30 06:20:38 revel router.go:120: NewRoute: New splitActionPath path:/hotels/list action:Hotels.List section=router -DEBUG 2018/10/30 06:20:38 revel router.go:315: splitActionPath: Check for namespace actionPath=hotels.list controller=hotels method=list section=router -INFO 2018/10/30 06:20:38 revel router.go:337: Found controller for path section=router actionPath=hotels.list controller=hotels method=list controllerType="&{Namespace:App\\ ModuleSource:0xe60f60 Type:controllers.Hotels Methods:[0xc420089630 0xc420089680 0xc420089720 0xc420089770 0xc4200897c0 0xc420089810 0xc420089860 0xc4200898b0] ControllerIndexes:[[0 0 0]] ControllerEvents:0xc42031ff80}" -DEBUG 2018/10/30 06:20:38 revel router.go:416: splitActionPath: Split Storing recognized action path hotels.list for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"GET", Path:"/hotels/list", Action:"Hotels.List", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/hotels/list", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:10} section=router actionPath=hotels.list controller=hotels method=list -DEBUG 2018/10/30 06:20:38 revel router.go:422: splitActionPath: Split Storing recognized action path app\hotels.list for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"GET", Path:"/hotels/list", Action:"Hotels.List", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/hotels/list", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:10} section=router actionPath=hotels.list controller=hotels method=list -DEBUG 2018/10/30 06:20:38 revel router.go:120: NewRoute: New splitActionPath path:/hotels/:id action:Hotels.Show section=router -DEBUG 2018/10/30 06:20:38 revel router.go:315: splitActionPath: Check for namespace section=router actionPath=hotels.show controller=hotels method=show -INFO 2018/10/30 06:20:38 revel router.go:337: Found controller for path controller=hotels method=show controllerType="&{Namespace:App\\ ModuleSource:0xe60f60 Type:controllers.Hotels Methods:[0xc420089630 0xc420089680 0xc420089720 0xc420089770 0xc4200897c0 0xc420089810 0xc420089860 0xc4200898b0] ControllerIndexes:[[0 0 0]] ControllerEvents:0xc42031ff80}" section=router actionPath=hotels.show -DEBUG 2018/10/30 06:20:38 revel router.go:416: splitActionPath: Split Storing recognized action path hotels.show for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"GET", Path:"/hotels/:id", Action:"Hotels.Show", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/hotels/:id", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:11} section=router actionPath=hotels.show controller=hotels method=show -DEBUG 2018/10/30 06:20:38 revel router.go:422: splitActionPath: Split Storing recognized action path app\hotels.show for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"GET", Path:"/hotels/:id", Action:"Hotels.Show", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/hotels/:id", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:11} actionPath=hotels.show controller=hotels method=show section=router -DEBUG 2018/10/30 06:20:38 revel router.go:120: NewRoute: New splitActionPath path:/hotels/:id/booking action:Hotels.Book section=router -DEBUG 2018/10/30 06:20:38 revel router.go:315: splitActionPath: Check for namespace method=book section=router actionPath=hotels.book controller=hotels -INFO 2018/10/30 06:20:38 revel router.go:337: Found controller for path controller=hotels method=book controllerType="&{Namespace:App\\ ModuleSource:0xe60f60 Type:controllers.Hotels Methods:[0xc420089630 0xc420089680 0xc420089720 0xc420089770 0xc4200897c0 0xc420089810 0xc420089860 0xc4200898b0] ControllerIndexes:[[0 0 0]] ControllerEvents:0xc42031ff80}" section=router actionPath=hotels.book -DEBUG 2018/10/30 06:20:38 revel router.go:416: splitActionPath: Split Storing recognized action path hotels.book for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"GET", Path:"/hotels/:id/booking", Action:"Hotels.Book", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/hotels/:id/booking", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:12} actionPath=hotels.book controller=hotels method=book section=router -DEBUG 2018/10/30 06:20:38 revel router.go:422: splitActionPath: Split Storing recognized action path app\hotels.book for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"GET", Path:"/hotels/:id/booking", Action:"Hotels.Book", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/hotels/:id/booking", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:12} section=router actionPath=hotels.book controller=hotels method=book -DEBUG 2018/10/30 06:20:38 revel router.go:120: NewRoute: New splitActionPath path:/hotels/:id/booking action:Hotels.ConfirmBooking section=router -DEBUG 2018/10/30 06:20:38 revel router.go:315: splitActionPath: Check for namespace section=router actionPath=hotels.confirmbooking controller=hotels method=confirmbooking -INFO 2018/10/30 06:20:38 revel router.go:337: Found controller for path section=router actionPath=hotels.confirmbooking controller=hotels method=confirmbooking controllerType="&{Namespace:App\\ ModuleSource:0xe60f60 Type:controllers.Hotels Methods:[0xc420089630 0xc420089680 0xc420089720 0xc420089770 0xc4200897c0 0xc420089810 0xc420089860 0xc4200898b0] ControllerIndexes:[[0 0 0]] ControllerEvents:0xc42031ff80}" -DEBUG 2018/10/30 06:20:38 revel router.go:416: splitActionPath: Split Storing recognized action path hotels.confirmbooking for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"POST", Path:"/hotels/:id/booking", Action:"Hotels.ConfirmBooking", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/POST/hotels/:id/booking", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:13} section=router actionPath=hotels.confirmbooking controller=hotels method=confirmbooking -DEBUG 2018/10/30 06:20:38 revel router.go:422: splitActionPath: Split Storing recognized action path app\hotels.confirmbooking for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"POST", Path:"/hotels/:id/booking", Action:"Hotels.ConfirmBooking", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/POST/hotels/:id/booking", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:13} section=router actionPath=hotels.confirmbooking controller=hotels method=confirmbooking -DEBUG 2018/10/30 06:20:38 revel router.go:120: NewRoute: New splitActionPath path:/bookings/:id/cancel action:Hotels.CancelBooking section=router -DEBUG 2018/10/30 06:20:38 revel router.go:315: splitActionPath: Check for namespace section=router actionPath=hotels.cancelbooking controller=hotels method=cancelbooking -INFO 2018/10/30 06:20:38 revel router.go:337: Found controller for path section=router actionPath=hotels.cancelbooking controller=hotels method=cancelbooking controllerType="&{Namespace:App\\ ModuleSource:0xe60f60 Type:controllers.Hotels Methods:[0xc420089630 0xc420089680 0xc420089720 0xc420089770 0xc4200897c0 0xc420089810 0xc420089860 0xc4200898b0] ControllerIndexes:[[0 0 0]] ControllerEvents:0xc42031ff80}" -DEBUG 2018/10/30 06:20:38 revel router.go:416: splitActionPath: Split Storing recognized action path hotels.cancelbooking for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"POST", Path:"/bookings/:id/cancel", Action:"Hotels.CancelBooking", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/POST/bookings/:id/cancel", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:14} section=router actionPath=hotels.cancelbooking controller=hotels method=cancelbooking -DEBUG 2018/10/30 06:20:38 revel router.go:422: splitActionPath: Split Storing recognized action path app\hotels.cancelbooking for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"POST", Path:"/bookings/:id/cancel", Action:"Hotels.CancelBooking", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/POST/bookings/:id/cancel", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:14} section=router actionPath=hotels.cancelbooking controller=hotels method=cancelbooking -DEBUG 2018/10/30 06:20:38 revel router.go:120: NewRoute: New splitActionPath path:/register action:Application.Register section=router -DEBUG 2018/10/30 06:20:38 revel router.go:315: splitActionPath: Check for namespace controller=application method=register section=router actionPath=application.register -INFO 2018/10/30 06:20:38 revel router.go:337: Found controller for path section=router actionPath=application.register controller=application method=register controllerType="&{Namespace:App\\ ModuleSource:0xe60f60 Type:controllers.Application Methods:[0xc420089270 0xc4200892c0 0xc420089310 0xc420089360 0xc4200893b0 0xc420089400] ControllerIndexes:[[0 0]] ControllerEvents:0xc42006d740}" -DEBUG 2018/10/30 06:20:38 revel router.go:416: splitActionPath: Split Storing recognized action path application.register for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"GET", Path:"/register", Action:"Application.Register", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/register", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:15} section=router actionPath=application.register controller=application method=register -DEBUG 2018/10/30 06:20:38 revel router.go:422: splitActionPath: Split Storing recognized action path app\application.register for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"GET", Path:"/register", Action:"Application.Register", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/register", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:15} actionPath=application.register controller=application method=register section=router -DEBUG 2018/10/30 06:20:38 revel router.go:120: NewRoute: New splitActionPath path:/register action:Application.SaveUser section=router -DEBUG 2018/10/30 06:20:38 revel router.go:315: splitActionPath: Check for namespace method=saveuser section=router actionPath=application.saveuser controller=application -INFO 2018/10/30 06:20:38 revel router.go:337: Found controller for path section=router actionPath=application.saveuser controller=application method=saveuser controllerType="&{Namespace:App\\ ModuleSource:0xe60f60 Type:controllers.Application Methods:[0xc420089270 0xc4200892c0 0xc420089310 0xc420089360 0xc4200893b0 0xc420089400] ControllerIndexes:[[0 0]] ControllerEvents:0xc42006d740}" -DEBUG 2018/10/30 06:20:38 revel router.go:416: splitActionPath: Split Storing recognized action path application.saveuser for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"POST", Path:"/register", Action:"Application.SaveUser", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/POST/register", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:16} section=router actionPath=application.saveuser controller=application method=saveuser -DEBUG 2018/10/30 06:20:38 revel router.go:422: splitActionPath: Split Storing recognized action path app\application.saveuser for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"POST", Path:"/register", Action:"Application.SaveUser", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/POST/register", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:16} section=router actionPath=application.saveuser controller=application method=saveuser -DEBUG 2018/10/30 06:20:38 revel router.go:120: NewRoute: New splitActionPath path:/settings action:Hotels.Settings section=router -DEBUG 2018/10/30 06:20:38 revel router.go:315: splitActionPath: Check for namespace actionPath=hotels.settings controller=hotels method=settings section=router -INFO 2018/10/30 06:20:38 revel router.go:337: Found controller for path section=router actionPath=hotels.settings controller=hotels method=settings controllerType="&{Namespace:App\\ ModuleSource:0xe60f60 Type:controllers.Hotels Methods:[0xc420089630 0xc420089680 0xc420089720 0xc420089770 0xc4200897c0 0xc420089810 0xc420089860 0xc4200898b0] ControllerIndexes:[[0 0 0]] ControllerEvents:0xc42031ff80}" -DEBUG 2018/10/30 06:20:38 revel router.go:416: splitActionPath: Split Storing recognized action path hotels.settings for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"GET", Path:"/settings", Action:"Hotels.Settings", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/settings", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:17} section=router actionPath=hotels.settings controller=hotels method=settings -DEBUG 2018/10/30 06:20:38 revel router.go:422: splitActionPath: Split Storing recognized action path app\hotels.settings for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"GET", Path:"/settings", Action:"Hotels.Settings", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/settings", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:17} controller=hotels method=settings section=router actionPath=hotels.settings -DEBUG 2018/10/30 06:20:38 revel router.go:120: NewRoute: New splitActionPath path:/settings action:Hotels.SaveSettings section=router -DEBUG 2018/10/30 06:20:38 revel router.go:315: splitActionPath: Check for namespace section=router actionPath=hotels.savesettings controller=hotels method=savesettings -INFO 2018/10/30 06:20:38 revel router.go:337: Found controller for path controllerType="&{Namespace:App\\ ModuleSource:0xe60f60 Type:controllers.Hotels Methods:[0xc420089630 0xc420089680 0xc420089720 0xc420089770 0xc4200897c0 0xc420089810 0xc420089860 0xc4200898b0] ControllerIndexes:[[0 0 0]] ControllerEvents:0xc42031ff80}" section=router actionPath=hotels.savesettings controller=hotels method=savesettings -DEBUG 2018/10/30 06:20:38 revel router.go:416: splitActionPath: Split Storing recognized action path hotels.savesettings for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"POST", Path:"/settings", Action:"Hotels.SaveSettings", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/POST/settings", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:18} section=router actionPath=hotels.savesettings controller=hotels method=savesettings -DEBUG 2018/10/30 06:20:38 revel router.go:422: splitActionPath: Split Storing recognized action path app\hotels.savesettings for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"POST", Path:"/settings", Action:"Hotels.SaveSettings", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/POST/settings", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:18} section=router actionPath=hotels.savesettings controller=hotels method=savesettings -DEBUG 2018/10/30 06:20:38 revel router.go:120: NewRoute: New splitActionPath path:/login action:Application.Login section=router -DEBUG 2018/10/30 06:20:38 revel router.go:315: splitActionPath: Check for namespace section=router actionPath=application.login controller=application method=login -INFO 2018/10/30 06:20:38 revel router.go:337: Found controller for path section=router actionPath=application.login controller=application method=login controllerType="&{Namespace:App\\ ModuleSource:0xe60f60 Type:controllers.Application Methods:[0xc420089270 0xc4200892c0 0xc420089310 0xc420089360 0xc4200893b0 0xc420089400] ControllerIndexes:[[0 0]] ControllerEvents:0xc42006d740}" -DEBUG 2018/10/30 06:20:38 revel router.go:416: splitActionPath: Split Storing recognized action path application.login for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"POST", Path:"/login", Action:"Application.Login", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/POST/login", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:19} controller=application method=login section=router actionPath=application.login -DEBUG 2018/10/30 06:20:38 revel router.go:422: splitActionPath: Split Storing recognized action path app\application.login for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"POST", Path:"/login", Action:"Application.Login", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/POST/login", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:19} method=login section=router actionPath=application.login controller=application -DEBUG 2018/10/30 06:20:38 revel router.go:120: NewRoute: New splitActionPath path:/logout action:Application.Logout section=router -DEBUG 2018/10/30 06:20:38 revel router.go:315: splitActionPath: Check for namespace section=router actionPath=application.logout controller=application method=logout -INFO 2018/10/30 06:20:38 revel router.go:337: Found controller for path section=router actionPath=application.logout controller=application method=logout controllerType="&{Namespace:App\\ ModuleSource:0xe60f60 Type:controllers.Application Methods:[0xc420089270 0xc4200892c0 0xc420089310 0xc420089360 0xc4200893b0 0xc420089400] ControllerIndexes:[[0 0]] ControllerEvents:0xc42006d740}" -DEBUG 2018/10/30 06:20:38 revel router.go:416: splitActionPath: Split Storing recognized action path application.logout for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"GET", Path:"/logout", Action:"Application.Logout", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/logout", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:20} actionPath=application.logout controller=application method=logout section=router -DEBUG 2018/10/30 06:20:38 revel router.go:422: splitActionPath: Split Storing recognized action path app\application.logout for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"GET", Path:"/logout", Action:"Application.Logout", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/GET/logout", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:20} method=logout section=router actionPath=application.logout controller=application -DEBUG 2018/10/30 06:20:38 revel router.go:120: NewRoute: New splitActionPath path:/public/*filepath action:Static.Servesection=router -DEBUG 2018/10/30 06:20:38 revel router.go:315: splitActionPath: Check for namespace section=router actionPath=static.serve controller=static method=serve -INFO 2018/10/30 06:20:38 revel router.go:337: Found controller for path controllerType= section=router actionPath=static.serve controller=static method=serve -DEBUG 2018/10/30 06:20:38 revel router.go:416: splitActionPath: Split Storing recognized action path static.serve(public) for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"GET", Path:"/public/*filepath", Action:"Static.Serve", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string{"public"}, TreePath:"/GET/public/*filepath", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:23} section=router actionPath=static.serve controller=static method=serve -DEBUG 2018/10/30 06:20:38 revel router.go:422: splitActionPath: Split Storing recognized action path static\static.serve(public) for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"GET", Path:"/public/*filepath", Action:"Static.Serve", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string{"public"}, TreePath:"/GET/public/*filepath", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:23} controller=static method=serve section=router actionPath=static.serve -DEBUG 2018/10/30 06:20:38 revel router.go:120: NewRoute: New splitActionPath path:/dir/ action:Static.ServeDirsection=router -DEBUG 2018/10/30 06:20:38 revel router.go:315: splitActionPath: Check for namespace section=router actionPath=static.servedir controller=static method=servedir -INFO 2018/10/30 06:20:38 revel router.go:337: Found controller for path controllerType= section=router actionPath=static.servedir controller=static method=servedir -DEBUG 2018/10/30 06:20:38 revel router.go:416: splitActionPath: Split Storing recognized action path static.servedir(public) for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"GET", Path:"/dir/", Action:"Static.ServeDir", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string{"public"}, TreePath:"/GET/dir/", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:24} method=servedir section=router actionPath=static.servedir controller=static -DEBUG 2018/10/30 06:20:38 revel router.go:422: splitActionPath: Split Storing recognized action path static\static.servedir(public) for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"GET", Path:"/dir/", Action:"Static.ServeDir", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string{"public"}, TreePath:"/GET/dir/", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:24} section=router actionPath=static.servedir controller=static method=servedir -DEBUG 2018/10/30 06:20:38 revel router.go:120: NewRoute: New splitActionPath path:/dir/*filepath action:Static.ServeDir section=router -DEBUG 2018/10/30 06:20:38 revel router.go:315: splitActionPath: Check for namespace section=router actionPath=static.servedir controller=static method=servedir -INFO 2018/10/30 06:20:38 revel router.go:337: Found controller for path actionPath=static.servedir controller=static method=servedir controllerType= section=router -DEBUG 2018/10/30 06:20:38 revel router.go:416: splitActionPath: Split Storing recognized action path static.servedir(public) for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"GET", Path:"/dir/*filepath", Action:"Static.ServeDir", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string{"public"}, TreePath:"/GET/dir/*filepath", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:25} section=router actionPath=static.servedir controller=static method=servedir -DEBUG 2018/10/30 06:20:38 revel router.go:422: splitActionPath: Split Storing recognized action path static\static.servedir(public) for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"GET", Path:"/dir/*filepath", Action:"Static.ServeDir", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string{"public"}, TreePath:"/GET/dir/*filepath", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:25} section=router actionPath=static.servedir controller=static method=servedir -DEBUG 2018/10/30 06:20:38 revel router.go:120: NewRoute: New splitActionPath path:/favicon.ico action:Static.Serve section=router -DEBUG 2018/10/30 06:20:38 revel router.go:315: splitActionPath: Check for namespace section=router actionPath=static.serve controller=static method=serve -INFO 2018/10/30 06:20:38 revel router.go:337: Found controller for path section=router actionPath=static.serve controller=static method=serve controllerType= -DEBUG 2018/10/30 06:20:38 revel router.go:416: splitActionPath: Split Storing recognized action path static.serve(public/img,favicon.png) for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"GET", Path:"/favicon.ico", Action:"Static.Serve", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string{"public/img", "favicon.png"}, TreePath:"/GET/favicon.ico", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:26} section=router actionPath=static.serve controller=static method=serve -DEBUG 2018/10/30 06:20:38 revel router.go:422: splitActionPath: Split Storing recognized action path static\static.serve(public/img,favicon.png) for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"GET", Path:"/favicon.ico", Action:"Static.Serve", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string{"public/img", "favicon.png"}, TreePath:"/GET/favicon.ico", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:26} section=router actionPath=static.serve controller=static method=serve -DEBUG 2018/10/30 06:20:38 revel router.go:120: NewRoute: New splitActionPath path:/:controller/:action action::controller.:actionsection=router -DEBUG 2018/10/30 06:20:38 revel router.go:315: splitActionPath: Check for namespace section=router actionPath=:controller.:action controller=:controller method=:action -DEBUG 2018/10/30 06:20:38 revel router.go:416: splitActionPath: Split Storing recognized action path :controller.:action for route &revel.Route{ModuleSource:(*revel.Module)(0xe60f60), Method:"*", Path:"/:controller/:action", Action:":controller.:action", ControllerNamespace:"", ControllerName:"", MethodName:"", FixedParams:[]string(nil), TreePath:"/:METHOD/:controller/:action", TypeOfController:(*revel.ControllerType)(nil), routesPath:"/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes", line:29} section=router actionPath=:controller.:action controller=:controller method=:action -INFO 2018/10/30 06:20:38 revel event.go:46: Raising event section=util len=6 -INFO 2018/10/30 06:20:38 revel revel_hooks.go:31: Run the 6 hook ... section=util -INFO 2018/10/30 06:20:38 app plugin.go:9: Go to /@tests to run the tests. -INFO 2018/10/30 06:20:38 revel revel_hooks.go:31: Run the 7 hook ... section=util -INFO 2018/10/30 06:20:38 revel revel_hooks.go:31: Run the 8 hook ... section=util -INFO 2018/10/30 06:20:38 app plugin.go:29: Go to /@jobs to see job status. -INFO 2018/10/30 06:20:38 revel revel_hooks.go:31: Run the 9 hook ... section=util -INFO 2018/10/30 06:20:38 revel revel_hooks.go:31: Run the 10 hook ... section=util -INFO 2018/10/30 06:20:38 revel revel_hooks.go:31: Run the 11 hook ... section=util -INFO 2018/10/30 06:20:38 app dbgorp.go:214: create table "User" ("UserId" integer not null primary key autoincrement, "Name" varchar(100), "Username" varchar(20), "HashedPassword" blob) ; [] (473.712µs)section=gorp -INFO 2018/10/30 06:20:38 app dbgorp.go:214: create table "Hotel" ("HotelId" integer not null primary key autoincrement, "Name" varchar(50), "Address" varchar(100), "City" varchar(40), "State" varchar(6), "Zip" varchar(6), "Country" varchar(40), "Price" integer) ; [] (70.698µs)section=gorp -INFO 2018/10/30 06:20:38 app dbgorp.go:214: create table "Booking" ("BookingId" integer not null primary key autoincrement, "UserId" integer, "HotelId" integer, "CheckInStr" varchar(255), "CheckOutStr" varchar(255), "CardNumber" varchar(16), "NameOnCard" varchar(50), "CardExpMonth" integer, "CardExpYear" integer, "Smoking" integer, "Beds" integer) ; [] (69.6µs) section=gorp -INFO 2018/10/30 06:20:39 app dbgorp.go:214: insert into "User" ("UserId","Name","Username","HashedPassword") values (null,?,?,?); [1:"Demo User" 2:"demo" 3:[36 50 97 36 49 48 36 87 79 121 74 66 49 101 66 107 70 106 56 54 46 51 73 119 109 103 104 89 101 66 109 114 108 100 66 90 48 99 82 118 111 102 57 71 50 57 71 117 70 50 108 112 56 79 53 51 54 83 53 105]] (95.259µs)section=gorp -INFO 2018/10/30 06:20:39 app dbgorp.go:214: SELECT count(*) FROM User [] (41.773µs) section=gorp -INFO 2018/10/30 06:20:39 app dbgorp.go:214: insert into "Hotel" ("HotelId","Name","Address","City","State","Zip","Country","Price") values (null,?,?,?,?,?,?,?); [1:"Marriott Courtyard" 2:"Tower Pl, Buckhead" 3:"Atlanta" 4:"GA" 5:"30305" 6:"USA" 7:120] (49.661µs)section=gorp -INFO 2018/10/30 06:20:39 app dbgorp.go:214: insert into "Hotel" ("HotelId","Name","Address","City","State","Zip","Country","Price") values (null,?,?,?,?,?,?,?); [1:"W Hotel" 2:"Union Square, Manhattan" 3:"New York" 4:"NY" 5:"10011" 6:"USA" 7:450] (31.57µs) section=gorp -INFO 2018/10/30 06:20:39 app dbgorp.go:214: insert into "Hotel" ("HotelId","Name","Address","City","State","Zip","Country","Price") values (null,?,?,?,?,?,?,?); [1:"Hotel Rouge" 2:"1315 16th St NW" 3:"Washington" 4:"DC" 5:"20036" 6:"USA" 7:250] (28.496µs) section=gorp -INFO 2018/10/30 06:20:39 app dbgorp.go:214: insert into "Booking" ("BookingId","UserId","HotelId","CheckInStr","CheckOutStr","CardNumber","NameOnCard","CardExpMonth","CardExpYear","Smoking","Beds") values (null,?,?,?,?,?,?,?,?,?,?); [1:1 2:1 3:"2018-10-30" 4:"2018-10-30" 5:"id1" 6:"n1" 7:12 8:2 9:false 10:2] (35.693µs) section=gorp -INFO 2018/10/30 06:20:39 app dbgorp.go:214: insert into "Booking" ("BookingId","UserId","HotelId","CheckInStr","CheckOutStr","CardNumber","NameOnCard","CardExpMonth","CardExpYear","Smoking","Beds") values (null,?,?,?,?,?,?,?,?,?,?); [1:1 2:2 3:"2018-10-30" 4:"2018-10-30" 5:"id2" 6:"n2" 7:12 8:2 9:false 10:2] (35.24µs) section=gorp -INFO 2018/10/30 06:20:39 app dbgorp.go:214: insert into "Booking" ("BookingId","UserId","HotelId","CheckInStr","CheckOutStr","CardNumber","NameOnCard","CardExpMonth","CardExpYear","Smoking","Beds") values (null,?,?,?,?,?,?,?,?,?,?); [1:1 2:3 3:"2018-10-30" 4:"2018-10-30" 5:"id3" 6:"n3" 7:12 8:2 9:false 10:2] (31.588µs) section=gorp -INFO 2018/10/30 06:20:39 revel revel_hooks.go:31: Run the 12 hook ... section=util -DEBUG 2018/10/30 06:20:39 revel template.go:116: Refresh: Refreshing templates from section=template path="[/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/app/views /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates /tmp/release/v0.21.0/go/src/github.com/revel/modules/jobs/app/views /tmp/release/v0.21.0/go/src/github.com/revel/modules/static/app/views /tmp/release/v0.21.0/go/src/github.com/revel/modules/testrunner/app/views]" -DEBUG 2018/10/30 06:20:39 revel template_engine.go:66: CreateTemplateEngine: init templates section=template name=go -INFO 2018/10/30 06:20:39 revel event.go:46: Raising event section=util len=6 -DEBUG 2018/10/30 06:20:39 revel template.go:144: Refresh: Refreshing templates from section=template path="[/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/app/views /tmp/release/v0.21.0/go/src/github.com/revel/modules/testrunner/app/views /tmp/release/v0.21.0/go/src/github.com/revel/modules/jobs/app/views /tmp/release/v0.21.0/go/src/github.com/revel/modules/static/app/views /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates]" -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/app/views/Hotels/book.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/app/views/Hotels/confirmbooking.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/app/views/Hotels/index.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/app/views/Hotels/list.htmlsection=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/app/views/Hotels/settings.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/app/views/Hotels/show.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/app/views/application/index.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/app/views/application/register.htmlsection=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/app/views/footer.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/app/views/header.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/modules/testrunner/app/views/TestRunner/FailureDetail.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/modules/testrunner/app/views/TestRunner/Index.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/modules/testrunner/app/views/TestRunner/SuiteResult.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/modules/jobs/app/views/Jobs/Status.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/modules/jobs/app/views/errors/401.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/modules/static/app/views/static/folder-view.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/modules/static/app/views/static/footer.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/modules/static/app/views/static/header.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/403.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/403.json section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/403.txt section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/403.xml section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/404-dev.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/404.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/404.json section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/404.txt section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/404.xml section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/405.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/405.json section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/405.txt section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/405.xml section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/500-dev.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/500.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/500.json section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/500.txt section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/500.xml section=template -INFO 2018/10/30 06:20:39 revel event.go:46: Raising event section=util len=6 -INFO 2018/10/30 06:20:39 revel event.go:46: Raising event section=util len=6 -INFO 2018/10/30 06:20:39 revel watcher.go:242: Waiting for refresh timer to expire section=util -DEBUG 2018/10/30 06:20:39 revel template.go:116: Refresh: Refreshing templates from section=template path="[/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/app/views /tmp/release/v0.21.0/go/src/github.com/revel/modules/testrunner/app/views /tmp/release/v0.21.0/go/src/github.com/revel/modules/jobs/app/views /tmp/release/v0.21.0/go/src/github.com/revel/modules/static/app/views /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates]" -DEBUG 2018/10/30 06:20:39 revel template_engine.go:66: CreateTemplateEngine: init templates section=template name=go -INFO 2018/10/30 06:20:39 revel event.go:46: Raising event section=util len=6 -DEBUG 2018/10/30 06:20:39 revel template.go:144: Refresh: Refreshing templates from section=template path="[/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/app/views /tmp/release/v0.21.0/go/src/github.com/revel/modules/testrunner/app/views /tmp/release/v0.21.0/go/src/github.com/revel/modules/jobs/app/views /tmp/release/v0.21.0/go/src/github.com/revel/modules/static/app/views /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates]" -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/app/views/Hotels/book.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/app/views/Hotels/confirmbooking.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/app/views/Hotels/index.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/app/views/Hotels/list.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/app/views/Hotels/settings.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/app/views/Hotels/show.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/app/views/application/index.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/app/views/application/register.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/app/views/footer.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/app/views/header.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/modules/testrunner/app/views/TestRunner/FailureDetail.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/modules/testrunner/app/views/TestRunner/Index.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/modules/testrunner/app/views/TestRunner/SuiteResult.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/modules/jobs/app/views/Jobs/Status.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/modules/jobs/app/views/errors/401.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/modules/static/app/views/static/folder-view.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/modules/static/app/views/static/footer.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/modules/static/app/views/static/header.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/403.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/403.json section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/403.txt section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/403.xml section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/404-dev.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/404.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/404.json section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/404.txt section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/404.xml section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/405.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/405.json section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/405.txt section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/405.xml section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/500-dev.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/500.html section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/500.json section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/500.txt section=template -DEBUG 2018/10/30 06:20:39 revel template.go:338: loadIntoEngine:Engine 'go' compiled /tmp/release/v0.21.0/go/src/github.com/revel/revel/templates/errors/500.xmlsection=template -INFO 2018/10/30 06:20:39 revel event.go:46: Raising event section=util len=6 -INFO 2018/10/30 06:20:39 revel watcher.go:263: Rebuilt, result section=util error=nil -DEBUG 2018/10/30 06:20:39 revel i18n.go:241: Unable to read locale cookie error="http: named cookie not present" section=i18n name=REVEL_LANG -DEBUG 2018/10/30 06:20:39 revel i18n.go:208: Unable to find locale in cookie or header, using empty string section=i18n -INFO 2018/10/30 06:20:39 testrunner server-engine.go:213: Request Stats path=/@tests.list status=200 ip=127.0.0.1 method=GET start=2018/10/30 06:20:39 duration_seconds=0.0174418 section=requestlog -DEBUG 2018/10/30 06:20:39 revel i18n.go:241: Unable to read locale cookie name=REVEL_LANG error="http: named cookie not present" section=i18n -DEBUG 2018/10/30 06:20:39 revel i18n.go:208: Unable to find locale in cookie or header, using empty stringsection=i18n -DEBUG 2018/10/30 06:20:39 revel i18n.go:241: Unable to read locale cookie error="http: named cookie not present" section=i18n name=REVEL_LANG -DEBUG 2018/10/30 06:20:39 revel i18n.go:208: Unable to find locale in cookie or header, using empty string section=i18n -INFO 2018/10/30 06:20:39 app dbgorp.go:214: begin; [] (38.399µs) section=gorp -INFO 2018/10/30 06:20:39 app dbgorp.go:214: commit; [] (13.612µs) section=gorp -DEBUG 2018/10/30 06:20:39 revel router.go:626: Checking for route section=router action=Application.Login pathdataRoute="&{ModuleSource:0xe60f60 Method:POST Path:/login Action:Application.Login ControllerNamespace:App\\ ControllerName:application MethodName:login FixedParams:[] TreePath:/POST/login TypeOfController:0xc42006d6e0 routesPath:/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes line:19}" -DEBUG 2018/10/30 06:20:39 revel router.go:626: Checking for route section=router action=Application.Register pathdataRoute="&{ModuleSource:0xe60f60 Method:GET Path:/register Action:Application.Register ControllerNamespace:App\\ ControllerName:application MethodName:register FixedParams:[] TreePath:/GET/register TypeOfController:0xc42006d6e0 routesPath:/tmp/release/v0.21.0/go/src/github.com/revel/examples/booking/conf/routes line:15}" -INFO 2018/10/30 06:20:39 app server-engine.go:213: Request Stats namespace=App\\ duration_seconds=0.0005584 section=requestlog ip=127.0.0.1 method=GET action=Application.Index path=/ start=2018/10/30 06:20:39 status=200 -INFO 2018/10/30 06:20:39 testrunner server-engine.go:213: Request Stats ip=127.0.0.1 path=/@tests/ApplicationTest/TestThatIndexPageWorks method=GET start=2018/10/30 06:20:39 section=requestlog status=200 duration_seconds=0.0019887 -INFO 2018/10/30 06:20:39 revel server_adapter_go.go:222: Received quit singal Please wait ... section=server -INFO 2018/10/30 06:20:39 revel event.go:46: Raising event section=util len=6 -WARN 2018/10/30 06:20:39 revel server_adapter_go.go:94: Server exiting: section=server error="http: Server closed" -INFO 2018/10/30 06:20:39 revel event.go:46: Raising event section=util len=6 -INFO 2018/10/30 06:20:39 revel revel_hooks.go:28: There is 1 hooks need to run ... section=server -INFO 2018/10/30 06:20:39 revel revel_hooks.go:31: Run the 1 hook ... section=util -INFO 2018/10/30 06:20:39 revel dbgorp.go:71: Closing the database (from module) diff --git a/booking/tests/booking_test.go b/booking/tests/booking_test.go index 02e7608..76f1a84 100644 --- a/booking/tests/booking_test.go +++ b/booking/tests/booking_test.go @@ -15,7 +15,7 @@ import ( func getRevelContainer() *model.RevelContainer{ - paths := model.NewRevelPaths("prod","github.com/revel/examples/booking", "", model.DoNothingRevelCallback) + paths, _ := model.NewRevelPaths("prod","github.com/revel/examples/booking", model.NewWrappedRevelCallback(nil, nil)) return paths } diff --git a/booking2/README.md b/booking2/README.md index 02e5d3c..e525ac1 100644 --- a/booking2/README.md +++ b/booking2/README.md @@ -140,3 +140,27 @@ ss

The [`field`](../manual/templates.html#field) template helper looks for errors in the validation context, using the field name as the key. + + +### Developing notes +All examples must be in the root folder, no nesting since the travis scripts operate on a bash script +to bulk modify the scripts you can do something like + + for file in examples/*/ + do + echo "$file is a directory" + cd $file && go mod tidy; + cd ../..; + go mod edit -replace "github.com/revel/revel=" $file/go.mod ; + done + +Before committing change them back by doing + + for file in examples/*/ + do + echo "$file is a directory" + cd $file && go mod tidy; + cd ../..; + go mod edit -dropreplace "github.com/revel/revel" $file/go.mod ; + done + diff --git a/booking2/app/controllers/app.go b/booking2/app/controllers/app.go index 183e688..17ff7ee 100644 --- a/booking2/app/controllers/app.go +++ b/booking2/app/controllers/app.go @@ -6,8 +6,7 @@ import ( "github.com/revel/revel" "database/sql" - "github.com/revel/examples/booking/app/models" - "github.com/revel/examples/booking/app/routes" + "github.com/revel/examples/booking2/app/models" "github.com/revel/modules/orm/gorp/app/controllers" ) @@ -54,7 +53,7 @@ func (c Application) getUser(username string) (user *models.User) { func (c Application) Index() revel.Result { if c.connected() != nil { - return c.Redirect(routes.Hotels.Index()) + return c.Redirect(Hotels.Index) } c.Flash.Error("Please log in first") return c.Render() @@ -73,7 +72,7 @@ func (c Application) SaveUser(user models.User, verifyPassword string) revel.Res if c.Validation.HasErrors() { c.Validation.Keep() c.FlashParams() - return c.Redirect(routes.Application.Register()) + return c.Redirect(Application.Register) } user.HashedPassword, _ = bcrypt.GenerateFromPassword( @@ -85,7 +84,7 @@ func (c Application) SaveUser(user models.User, verifyPassword string) revel.Res c.Session["user"] = user.Username c.Flash.Success("Welcome, " + user.Name) - return c.Redirect(routes.Hotels.Index()) + return c.Redirect(Hotels.Index) } func (c Application) Login(username, password string, remember bool) revel.Result { @@ -100,20 +99,20 @@ func (c Application) Login(username, password string, remember bool) revel.Resul c.Session.SetNoExpiration() } c.Flash.Success("Welcome, " + username) - return c.Redirect(routes.Hotels.Index()) + return c.Redirect(Hotels.Index) } } c.Flash.Out["username"] = username c.Flash.Error("Login failed") - return c.Redirect(routes.Application.Index()) + return c.Redirect(Application.Index) } func (c Application) Logout() revel.Result { for k := range c.Session { delete(c.Session, k) } - return c.Redirect(routes.Application.Index()) + return c.Redirect(Application.Index) } func (c Application) About() revel.Result { c.ViewArgs["Msg"]="Revel Speaks" diff --git a/booking2/app/controllers/hotels.go b/booking2/app/controllers/hotels.go index 2fecfd6..1104916 100644 --- a/booking2/app/controllers/hotels.go +++ b/booking2/app/controllers/hotels.go @@ -8,10 +8,9 @@ import ( "github.com/revel/revel" - "github.com/revel/examples/booking/app/models" - "github.com/revel/examples/booking/app/routes" + "github.com/revel/examples/booking2/app/models" - "gopkg.in/Masterminds/squirrel.v1" + "github.com/Masterminds/squirrel" ) type Hotels struct { @@ -21,7 +20,7 @@ type Hotels struct { func (c Hotels) checkUser() revel.Result { if user := c.connected(); user == nil { c.Flash.Error("Please log in first") - return c.Redirect(routes.Application.Index()) + return c.Redirect(Application.Index) } return nil } @@ -94,7 +93,7 @@ func (c Hotels) SaveSettings(password, verifyPassword string) revel.Result { Message("Your password doesn't match") if c.Validation.HasErrors() { c.Validation.Keep() - return c.Redirect(routes.Hotels.Settings()) + return c.Redirect(Hotels.Settings) } bcryptPassword, _ := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost) @@ -105,7 +104,7 @@ func (c Hotels) SaveSettings(password, verifyPassword string) revel.Result { panic(err) } c.Flash.Success("Password updated") - return c.Redirect(routes.Hotels.Index()) + return c.Redirect(Hotels.Index) } func (c Hotels) ConfirmBooking(id int, booking models.Booking) revel.Result { @@ -122,7 +121,7 @@ func (c Hotels) ConfirmBooking(id int, booking models.Booking) revel.Result { if c.Validation.HasErrors() || c.Params.Get("revise") != "" { c.Validation.Keep() c.FlashParams() - return c.Redirect(routes.Hotels.Book(id)) + return c.Redirect(Hotels.Book,id) } if c.Params.Get("confirm") != "" { @@ -132,7 +131,7 @@ func (c Hotels) ConfirmBooking(id int, booking models.Booking) revel.Result { } c.Flash.Success("Thank you, %s, your confirmation number for %s is %d", booking.User.Name, hotel.Name, booking.BookingId) - return c.Redirect(routes.Hotels.Index()) + return c.Redirect(Hotels.Index, id) } return c.Render(title, hotel, booking) @@ -144,7 +143,7 @@ func (c Hotels) CancelBooking(id int) revel.Result { panic(err) } c.Flash.Success(fmt.Sprintln("Booking cancelled for confirmation number", id)) - return c.Redirect(routes.Hotels.Index()) + return c.Redirect(Hotels.Index) } func (c Hotels) Book(id int) revel.Result { diff --git a/booking2/app/init.go b/booking2/app/init.go index 8b518d1..ba52d47 100644 --- a/booking2/app/init.go +++ b/booking2/app/init.go @@ -1,7 +1,12 @@ package app import ( + "github.com/revel/examples/booking2/app/models" + rgorp "github.com/revel/modules/orm/gorp/app" "github.com/revel/revel" + "golang.org/x/crypto/bcrypt" + "github.com/go-gorp/gorp" + "time" ) func init() { @@ -20,6 +25,80 @@ func init() { revel.CompressFilter, // Compress the result. revel.ActionInvoker, // Invoke the action. } + + revel.OnAppStart(func() { + Dbm := rgorp.Db.Map + setColumnSizes := func(t *gorp.TableMap, colSizes map[string]int) { + for col, size := range colSizes { + t.ColMap(col).MaxSize = size + } + } + + t := Dbm.AddTable(models.User{}).SetKeys(true, "UserId") + t.ColMap("Password").Transient = true + setColumnSizes(t, map[string]int{ + "Username": 20, + "Name": 100, + }) + + t = Dbm.AddTable(models.Hotel{}).SetKeys(true, "HotelId") + setColumnSizes(t, map[string]int{ + "Name": 50, + "Address": 100, + "City": 40, + "State": 6, + "Zip": 6, + "Country": 40, + }) + + t = Dbm.AddTable(models.Booking{}).SetKeys(true, "BookingId") + t.ColMap("User").Transient = true + t.ColMap("Hotel").Transient = true + t.ColMap("CheckInDate").Transient = true + t.ColMap("CheckOutDate").Transient = true + setColumnSizes(t, map[string]int{ + "CardNumber": 16, + "NameOnCard": 50, + }) + + rgorp.Db.TraceOn(revel.AppLog) + err := Dbm.CreateTables() + if err!=nil { + revel.AppLog.Fatal("Failed to create tables","error",err) + } + + bcryptPassword, _ := bcrypt.GenerateFromPassword( + []byte("demo"), bcrypt.DefaultCost) + demoUser := &models.User{0, "Demo User", "demo", "demo", bcryptPassword} + if err := Dbm.Insert(demoUser); err != nil { + panic(err) + } + count, _ := rgorp.Db.SelectInt(rgorp.Db.SqlStatementBuilder.Select("count(*)").From("User")) + if count > 1 { + revel.AppLog.Panic("Unexpected multiple users", "count", count) + } + + hotels := []*models.Hotel{ + &models.Hotel{0, "Marriott Courtyard", "Tower Pl, Buckhead", "Atlanta", "GA", "30305", "USA", 120}, + &models.Hotel{0, "W Hotel", "Union Square, Manhattan", "New York", "NY", "10011", "USA", 450}, + &models.Hotel{0, "Hotel Rouge", "1315 16th St NW", "Washington", "DC", "20036", "USA", 250}, + } + for _, hotel := range hotels { + if err := Dbm.Insert(hotel); err != nil { + panic(err) + } + } + bookings := []*models.Booking{ + &models.Booking{0, demoUser.UserId, hotels[0].HotelId, time.Now().Format(models.SQL_DATE_FORMAT), time.Now().Format(models.SQL_DATE_FORMAT), "id1", "n1", 12, 2, false, 2, time.Now(), time.Now(), demoUser, hotels[0]}, + &models.Booking{0, demoUser.UserId, hotels[1].HotelId, time.Now().Format(models.SQL_DATE_FORMAT), time.Now().Format(models.SQL_DATE_FORMAT), "id2", "n2", 12, 2, false, 2, time.Now(), time.Now(), demoUser, hotels[1]}, + &models.Booking{0, demoUser.UserId, hotels[2].HotelId, time.Now().Format(models.SQL_DATE_FORMAT), time.Now().Format(models.SQL_DATE_FORMAT), "id3", "n3", 12, 2, false, 2, time.Now(), time.Now(), demoUser, hotels[2]}, + } + for _, booking := range bookings { + if err := Dbm.Insert(booking); err != nil { + panic(err) + } + } + }, 5) } var HeaderFilter = func(c *revel.Controller, fc []revel.Filter) { diff --git a/booking2/app/jobs/count.go b/booking2/app/jobs/count.go index 8e573e1..140a8d2 100644 --- a/booking2/app/jobs/count.go +++ b/booking2/app/jobs/count.go @@ -6,7 +6,7 @@ import ( "github.com/revel/modules/jobs/app/jobs" "github.com/revel/modules/orm/gorp/app" - "github.com/revel/examples/booking/app/models" + "github.com/revel/examples/booking2/app/models" ) // Periodically count the bookings in the database. diff --git a/booking2/conf/app.conf b/booking2/conf/app.conf index 93cc3ee..91c6b8c 100644 --- a/booking2/conf/app.conf +++ b/booking2/conf/app.conf @@ -20,9 +20,10 @@ log.info.prefix = "INFO " log.warn.prefix = "WARN " log.error.prefix = "ERROR " -db.import = github.com/mattn/go-sqlite3 -db.driver = sqlite3 -db.spec = file::memory:?mode=memory&cache=shared +db.autoinit = true +db.import = github.com/mattn/go-sqlite3 +db.driver = sqlite3 +db.connection = file::memory:?mode=memory&cache=shared build.tags=gorp diff --git a/chat/app/init.go b/chat/app/init.go new file mode 100644 index 0000000..07b0a28 --- /dev/null +++ b/chat/app/init.go @@ -0,0 +1,2 @@ +package app +// Required for go mod \ No newline at end of file diff --git a/facebook-oauth2/app/init.go b/facebook-oauth2/app/init.go new file mode 100644 index 0000000..07b0a28 --- /dev/null +++ b/facebook-oauth2/app/init.go @@ -0,0 +1,2 @@ +package app +// Required for go mod \ No newline at end of file diff --git a/twitter-oauth/app/init.go b/twitter-oauth/app/init.go new file mode 100644 index 0000000..07b0a28 --- /dev/null +++ b/twitter-oauth/app/init.go @@ -0,0 +1,2 @@ +package app +// Required for go mod \ No newline at end of file diff --git a/validation/app/init.go b/validation/app/init.go new file mode 100644 index 0000000..07b0a28 --- /dev/null +++ b/validation/app/init.go @@ -0,0 +1,2 @@ +package app +// Required for go mod \ No newline at end of file