Created
June 5, 2010 05:23
-
-
Save takeru/426331 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| require 'appengine-rack' | |
| AppEngine::Rack.configure_app( | |
| :application => "gae151pre2test", | |
| :precompilation_enabled => true, | |
| :version => "1") | |
| class HelloApp | |
| def call(env) | |
| ::Rack::Response.new("Hello").finish | |
| end | |
| end | |
| case 1 # 1,2,3 | |
| when 1 | |
| s = File.lstat("/Users") ## <<<<<<<<<<<<<<<<<<<<<< | |
| p ["A: lstat=", s] | |
| class DeferredDispatcher2 | |
| def initialize args | |
| @args = args | |
| p ["DeferredDispatcher2#initialize: @args", @args] | |
| @args | |
| end | |
| def call env | |
| p ["DeferredDispatcher2#call: @runtime", @runtime] | |
| p ["DeferredDispatcher2#call: @rack_app", @rack_app] | |
| if @runtime.nil? | |
| @runtime = true | |
| # 1: redirect with runtime and jruby-rack loaded | |
| redirect_or_error(env) | |
| elsif @rack_app.nil? | |
| p "[@rack_app.nil?==true]" | |
| s = nil | |
| begin | |
| s = File.lstat("/Users") ## <<<<<<<<<<<<<<<<<<<<<< | |
| rescue => e | |
| p "<<<<ERROR>>>> e=#{e.inspect}" | |
| raise e | |
| end | |
| p ["B: lstat=", s] | |
| require @args[:require] if @args[:require] | |
| @rack_app = Object.module_eval(@args[:dispatch]).new | |
| # 2: redirect with framework required & dispatched | |
| redirect_or_error(env) | |
| else | |
| # 3: process all other requests | |
| @rack_app.call(env) | |
| end | |
| end | |
| def redirect_or_error(env) | |
| if env['REQUEST_METHOD'].eql?('GET') | |
| redir_url = env['REQUEST_URI'] + | |
| (env['QUERY_STRING'].eql?('') ? '?' : '&') + Time.now.to_i.to_s | |
| res = ::Rack::Response.new('*', 302) | |
| res['Location'] = redir_url | |
| res.finish | |
| else | |
| ::Rack::Response.new('Service Unavailable', 503).finish | |
| end | |
| end | |
| end | |
| deferred_dispatcher = DeferredDispatcher2.new( | |
| :require => nil, | |
| :dispatch => 'HelloApp') | |
| run deferred_dispatcher | |
| when 2 | |
| deferred_dispatcher = AppEngine::Rack::DeferredDispatcher.new( | |
| :require => "time", # dummy!! | |
| :dispatch => 'HelloApp') | |
| run deferred_dispatcher | |
| when 3 | |
| run HelloApp.new | |
| #lambda { ::Rack::Response.new("Hello").finish } | |
| end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Critical default settings: | |
| disable_system_gems | |
| disable_rubygems | |
| bundle_path ".gems/bundler_gems" | |
| # List gems to bundle here: | |
| gem 'appengine-rack', '0.0.10.pre' | |
| gem 'jruby-openssl', '0.7' | |
| gem 'jruby-jars', '1.5.1.pre2' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| tkrmb:~/demo/gae151pre2test% ls -l .gems/bundler_gems/jruby/1.8/cache | |
| total 21912 | |
| -rw-r--r-- 1 takeru takeru 15360 6 5 12:51 appengine-rack-0.0.10.pre.gem | |
| -rw-r--r-- 1 takeru takeru 15360 6 5 12:50 appengine-rack-0.0.9.gem | |
| -rw-r--r-- 1 takeru takeru 9982976 6 5 12:50 jruby-jars-1.4.1.gem | |
| -rw-r--r-- 1 takeru takeru 9984000 6 5 12:51 jruby-jars-1.5.1.pre2.gem | |
| -rw-r--r-- 1 takeru takeru 2174976 6 5 12:51 jruby-openssl-0.7.gem | |
| -rw-r--r-- 1 takeru takeru 148992 6 5 12:50 jruby-rack-1.0.1.gem | |
| -rw-r--r-- 1 takeru takeru 104448 6 5 12:50 rack-1.1.0.gem | |
| tkrmb:~/demo/gae151pre2testls -l .gems/bundler_gems/jruby/1.8/gems | |
| total 0 | |
| drwxr-xr-x 5 takeru takeru 170 6 5 12:51 appengine-rack-0.0.10.pre | |
| drwxr-xr-x 6 takeru takeru 204 6 5 12:51 jruby-jars-1.5.1.pre2 | |
| drwxr-xr-x 9 takeru takeru 306 6 5 12:51 jruby-openssl-0.7 | |
| drwxr-xr-x 6 takeru takeru 204 6 5 12:50 jruby-rack-1.0.1 | |
| drwxr-xr-x 13 takeru takeru 442 6 5 12:50 rack-1.1.0 | |
| tkrmb:~/demo/gae151pre2test% ls -l WEB-INF/lib | |
| total 24944 | |
| -rw-r--r-- 1 takeru takeru 9993366 6 5 12:50 appengine-api-1.0-sdk-1.3.4.jar | |
| -rw-r--r-- 1 takeru takeru 1216274 6 5 12:50 appengine-api-labs-1.3.4.jar | |
| -rw-r--r-- 1 takeru takeru 4294 6 5 13:09 appengine-rack.jar | |
| -rw-r--r-- 1 takeru takeru 225425 6 5 13:09 bcmail-jdk15-144.jar | |
| -rw-r--r-- 1 takeru takeru 1643601 6 5 13:09 bcprov-jdk15-144.jar | |
| -rw------- 1 takeru takeru 395421 6 5 13:09 gems.jar | |
| -rw-r--r-- 1 takeru takeru 417605 6 5 13:09 jopenssl.jar | |
| -rw-r--r-- 1 takeru takeru 8176368 6 5 13:09 jruby-core-1.5.1.pre2.jar | |
| -rw-r--r-- 1 takeru takeru 157793 6 5 13:09 jruby-rack-1.0.1.jar | |
| -rw-r--r-- 1 takeru takeru 3291087 6 5 13:09 jruby-stdlib-1.5.1.pre2.jar |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| % LANG=C dev_appserver.rb . | |
| => Booting DevAppServer | |
| => Press Ctrl-C to shutdown server | |
| Warning: The Mac OS -XstartOnFirstThread: is currently unsupported | |
| Jun 5, 2010 5:32:04 AM com.google.apphosting.utils.jetty.JettyLogger info | |
| INFO: Logging to JettyLogger(null) via com.google.apphosting.utils.jetty.JettyLogger | |
| Jun 5, 2010 5:32:04 AM com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml | |
| INFO: Successfully processed /Users/takeru/demo/gae151pre2test/WEB-INF/appengine-web.xml | |
| Jun 5, 2010 5:32:04 AM com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml | |
| INFO: Successfully processed /Users/takeru/demo/gae151pre2test/WEB-INF/web.xml | |
| Jun 5, 2010 5:32:04 AM com.google.apphosting.utils.jetty.JettyLogger info | |
| INFO: jetty-6.1.x | |
| ["A: lstat=", #<File::Stat dev=0xino=0, mode=040644, nlink=uid=-1, gid=rdev=0xsize=306, blksize=4096, blocks=atime=Sun Apr 18 08:21:50 UTC 2010, mtime=Sun Apr 18 08:21:50 UTC 2010, ctime=Mon May 31 16:01:47 UTC 2010>] | |
| ["DeferredDispatcher2#initialize: @args", {:require=>nil, :dispatch=>"HelloApp"}] | |
| Jun 5, 2010 5:32:15 AM com.google.apphosting.utils.jetty.JettyLogger info | |
| INFO: Started SelectChannelConnector@127.0.0.1:8080 | |
| Jun 5, 2010 5:32:15 AM com.google.appengine.tools.development.DevAppServerImpl start | |
| INFO: The server is running at http://localhost:8080/ | |
| ["DeferredDispatcher2#call: @runtime", nil] | |
| ["DeferredDispatcher2#call: @rack_app", nil] | |
| ["DeferredDispatcher2#call: @runtime", true] | |
| ["DeferredDispatcher2#call: @rack_app", nil] | |
| "[@rack_app.nil?==true]" | |
| "<<<<ERROR>>>> e=#<Errno::ENOENT: No such file or directory - /Users>" | |
| Jun 5, 2010 5:32:22 AM com.google.appengine.tools.development.ApiProxyLocalImpl log | |
| SEVERE: [1275715942889000] javax.servlet.ServletContext log: Application Error | |
| config.ru:36:in `call': No such file or directory - /Users (Errno::ENOENT) | |
| from file:/Users/takeru/demo/gae151pre2test/WEB-INF/lib/jruby-rack-1.0.1.jar!/rack/handler/servlet.rb:19:in `call' | |
| from :1 | |
| ...internal jruby stack elided... | |
| from DeferredDispatcher2.call(file:/Users/takeru/demo/gae151pre2test/WEB-INF/lib/jruby-rack-1.0.1.jar!/rack/handler/servlet.rb:19) | |
| from Rack::Handler::Servlet.call(:1) | |
| from (unknown).(unknown)(:1) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment