glassfish 0.9.5-universal-java → 1.0.0-universal-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. data/History.txt +247 -0
  2. data/LICENSE.txt +774 -0
  3. data/README.txt +140 -0
  4. data/bin/gfrake +5 -1
  5. data/bin/glassfish +5 -7
  6. data/generators/gfrake/templates/glassfish.yml +39 -0
  7. data/lib/command_line_parser.rb +29 -40
  8. data/lib/config.rb +57 -63
  9. data/lib/glassfish.rb +3 -79
  10. data/{modules → lib/java}/akuma.jar +0 -0
  11. data/lib/java/gf-jruby-connector.jar +0 -0
  12. data/lib/java/glassfish-embedded-nucleus.jar +0 -0
  13. data/lib/java/glassfish-gem.jar +0 -0
  14. data/lib/java/grizzly-jruby-module.jar +0 -0
  15. data/lib/java/grizzly-jruby.jar +0 -0
  16. data/lib/jruby/rack/grizzly_helper.rb +230 -0
  17. data/lib/jruby/rack/merb.rb +34 -0
  18. data/lib/jruby/rack/rackup.rb +46 -0
  19. data/lib/jruby/rack/rails.rb +29 -0
  20. data/lib/jruby/rack/sinatra.rb +18 -0
  21. data/lib/jruby/rails_path.rb +11 -0
  22. data/lib/{templates/profile.properties → rack/adapter/merb.rb} +18 -7
  23. data/lib/rack/adapter/rails.rb +268 -0
  24. data/lib/rack/handler/grizzly.rb +59 -0
  25. data/lib/server.rb +164 -0
  26. data/lib/version.rb +1 -1
  27. metadata +83 -153
  28. data/bin/glassfish_rails +0 -61
  29. data/config/asadminenv.conf +0 -6
  30. data/config/asenv.bat +0 -29
  31. data/config/asenv.conf +0 -31
  32. data/config/glassfish.container +0 -4
  33. data/domains/domain1/config/admin-keyfile +0 -3
  34. data/domains/domain1/config/cacerts.jks +0 -0
  35. data/domains/domain1/config/default-web.xml +0 -1133
  36. data/domains/domain1/config/domain-passwords +0 -0
  37. data/domains/domain1/config/domain.xml +0 -190
  38. data/domains/domain1/config/glassfish_gem_version.yml +0 -7
  39. data/domains/domain1/config/keyfile +0 -6
  40. data/domains/domain1/config/keystore.jks +0 -0
  41. data/domains/domain1/config/logging.properties +0 -46
  42. data/domains/domain1/config/login.conf +0 -21
  43. data/domains/domain1/config/server.policy +0 -170
  44. data/domains/domain1/config/sun-acc.xml +0 -40
  45. data/domains/domain1/docroot/index.html +0 -83
  46. data/domains/domain1/master-password +0 -0
  47. data/lib/appclient/appclientlogin.conf +0 -10
  48. data/lib/appclient/client.policy +0 -79
  49. data/lib/appclient/wss-client-config-1.0.xml +0 -84
  50. data/lib/appclient/wss-client-config-2.0.xml +0 -96
  51. data/lib/registration/servicetag-registry.xml +0 -18
  52. data/lib/templates/cacerts.jks +0 -0
  53. data/lib/templates/default-web.xml +0 -1133
  54. data/lib/templates/docroot/index.html +0 -83
  55. data/lib/templates/domain.xml +0 -180
  56. data/lib/templates/domain.xml.xsl +0 -100
  57. data/lib/templates/keyfile +0 -6
  58. data/lib/templates/keystore.jks +0 -0
  59. data/lib/templates/logging.properties +0 -48
  60. data/lib/templates/login.conf +0 -21
  61. data/lib/templates/server.policy +0 -170
  62. data/lib/templates/sun-acc.xml +0 -40
  63. data/modules/admin-cli.jar +0 -0
  64. data/modules/api-exporter.jar +0 -0
  65. data/modules/asm-all-repackaged.jar +0 -0
  66. data/modules/auto-depends.jar +0 -0
  67. data/modules/bean-validator.jar +0 -0
  68. data/modules/branding.jar +0 -0
  69. data/modules/cli-framework.jar +0 -0
  70. data/modules/common-util.jar +0 -0
  71. data/modules/config-api.jar +0 -0
  72. data/modules/config.jar +0 -0
  73. data/modules/deployment-admin.jar +0 -0
  74. data/modules/deployment-autodeploy.jar +0 -0
  75. data/modules/deployment-common.jar +0 -0
  76. data/modules/flashlight-agent.jar +0 -0
  77. data/modules/flashlight-framework.jar +0 -0
  78. data/modules/gf-jruby-connector.jar +0 -0
  79. data/modules/gfprobe-provider-client.jar +0 -0
  80. data/modules/glassfish-api.jar +0 -0
  81. data/modules/glassfish-ee-api.jar +0 -0
  82. data/modules/glassfish-extra-jre-packages.jar +0 -0
  83. data/modules/glassfish-gem.jar +0 -0
  84. data/modules/glassfish.jar +0 -0
  85. data/modules/grizzly-comet.jar +0 -0
  86. data/modules/grizzly-cometd.jar +0 -0
  87. data/modules/grizzly-compat.jar +0 -0
  88. data/modules/grizzly-config.jar +0 -0
  89. data/modules/grizzly-framework.jar +0 -0
  90. data/modules/grizzly-http.jar +0 -0
  91. data/modules/grizzly-jruby-module.jar +0 -0
  92. data/modules/grizzly-jruby.jar +0 -0
  93. data/modules/grizzly-messagesbus.jar +0 -0
  94. data/modules/grizzly-portunif.jar +0 -0
  95. data/modules/grizzly-rcm.jar +0 -0
  96. data/modules/grizzly-utils.jar +0 -0
  97. data/modules/hk2-core.jar +0 -0
  98. data/modules/hk2.jar +0 -0
  99. data/modules/internal-api.jar +0 -0
  100. data/modules/kernel.jar +0 -0
  101. data/modules/launcher.jar +0 -0
  102. data/modules/org.apache.felix.configadmin.jar +0 -0
  103. data/modules/org.apache.felix.fileinstall.jar +0 -0
  104. data/modules/org.apache.felix.shell.jar +0 -0
  105. data/modules/org.apache.felix.shell.remote.jar +0 -0
  106. data/modules/org.apache.felix.shell.tui.jar +0 -0
  107. data/modules/osgi-main.jar +0 -0
  108. data/modules/pkg-client.jar +0 -0
  109. data/modules/tiger-types-osgi.jar +0 -0
@@ -0,0 +1,11 @@
1
+ module Rails
2
+ class Configuration
3
+ def threadsafe?
4
+ if(Rails::Configuration.instance_methods.include?'threadsafe!')
5
+ preload_frameworks && cache_classes && !dependency_loading && action_controller.allow_concurrency
6
+ else
7
+ false
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,8 +1,8 @@
1
1
  #
2
2
  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
- #
4
- # Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
5
- #
3
+ #
4
+ # Copyright 2007-2008 Sun Microsystems, Inc. All rights reserved.
5
+ #
6
6
  # The contents of this file are subject to the terms of either the GNU
7
7
  # General Public License Version 2 only ("GPL") or the Common Development
8
8
  # and Distribution License("CDDL") (collectively, the "License"). You
@@ -10,7 +10,7 @@
10
10
  # a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
11
11
  # or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
12
12
  # language governing permissions and limitations under the License.
13
- #
13
+ #
14
14
  # When distributing the software, include this License Header Notice in each
15
15
  # file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
16
16
  # Sun designates this particular file as subject to the "Classpath" exception
@@ -19,9 +19,9 @@
19
19
  # Header, with the fields enclosed by brackets [] replaced by your own
20
20
  # identifying information: "Portions Copyrighted [year]
21
21
  # [name of copyright owner]"
22
- #
22
+ #
23
23
  # Contributor(s):
24
- #
24
+ #
25
25
  # If you wish your version of this file to be governed by only the CDDL or
26
26
  # only the GPL Version 2, indicate your decision by adding "[Contributor]
27
27
  # elects to include this software in this distribution under the [CDDL or GPL
@@ -34,4 +34,15 @@
34
34
  # holder.
35
35
  #
36
36
 
37
- domain.xml.style-sheets=domain.xml.xsl
37
+ # Grizzly Adapter for Merb: when asked to start, it returns the already-running grizzly server instance
38
+ require 'jruby/rack/grizzly_helper'
39
+ module Merb
40
+ module Rack
41
+ class GrizzlyMerb
42
+ def self.start(opts={})
43
+ $merb_app = opts[:app]
44
+ ::JRuby::Rack::GrizzlyHelper.instance
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,268 @@
1
+ #
2
+ # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
+ #
4
+ # Copyright 2007-2008 Sun Microsystems, Inc. All rights reserved.
5
+ #
6
+ # The contents of this file are subject to the terms of either the GNU
7
+ # General Public License Version 2 only ("GPL") or the Common Development
8
+ # and Distribution License("CDDL") (collectively, the "License"). You
9
+ # may not use this file except in compliance with the License. You can obtain
10
+ # a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
11
+ # or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
12
+ # language governing permissions and limitations under the License.
13
+ #
14
+ # When distributing the software, include this License Header Notice in each
15
+ # file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
16
+ # Sun designates this particular file as subject to the "Classpath" exception
17
+ # as provided by Sun in the GPL Version 2 section of the License file that
18
+ # accompanied this code. If applicable, add the following below the License
19
+ # Header, with the fields enclosed by brackets [] replaced by your own
20
+ # identifying information: "Portions Copyrighted [year]
21
+ # [name of copyright owner]"
22
+ #
23
+ # Contributor(s):
24
+ #
25
+ # If you wish your version of this file to be governed by only the CDDL or
26
+ # only the GPL Version 2, indicate your decision by adding "[Contributor]
27
+ # elects to include this software in this distribution under the [CDDL or GPL
28
+ # Version 2] license." If you don't indicate a single choice of license, a
29
+ # recipient has the option to distribute your version of this file under
30
+ # either the CDDL, the GPL Version 2 or to extend the choice of license to
31
+ # its licensees as provided above. However, if you add GPL Version 2 code
32
+ # and therefore, elected the GPL Version 2 license, then the option applies
33
+ # only if the new code is made subject to such option by the copyright
34
+ # holder.
35
+ #
36
+ require 'jruby/rack/rails'
37
+
38
+ require 'rubygems'
39
+
40
+ begin
41
+ gem 'rack'
42
+ require 'rack'
43
+ rescue LoadError
44
+ error = <<EOF
45
+ ###
46
+ ERROR : Is rack installed? Install Rack using 'gem install rack'
47
+ ###
48
+ EOF
49
+ puts "\n"+error
50
+ raise
51
+ end
52
+
53
+
54
+ # Based on http://github.com/macournoyer/thin/tree/master/lib/rack/adapter/rails.rb
55
+ # Adapter to run a Rails app with any supported Rack handler.
56
+ # By default it will try to load the Rails application in the
57
+ # current directory in the development environment.
58
+ # Options:
59
+ # root: Root directory of the Rails app
60
+ # env: Rails environment to run in (development, production or test)
61
+ # Based on http://fuzed.rubyforge.org/ Rails adapter
62
+ module Rack
63
+ module Adapter
64
+ class Rails
65
+ FILE_METHODS = %w(GET HEAD).freeze
66
+
67
+ def initialize(helper)
68
+ options = helper.options
69
+ @rails_grizzly_helper = helper
70
+ @root = options[:root] || Dir.pwd
71
+ @env = options[:environment] || 'development'
72
+ @prefix = options[:prefix]
73
+ @public = options[:public]
74
+
75
+ load_application
76
+
77
+ @rails_app = if rack_based?
78
+ ActionController::Dispatcher.new
79
+ else
80
+ CgiApp.new
81
+ end
82
+
83
+ @file_app = Rack::File.new(::File.join(@root, "public"))
84
+
85
+ end
86
+
87
+ def rack_based?
88
+ ActionController.const_defined?(:Dispatcher) &&
89
+ (ActionController::Dispatcher.instance_methods.include?(:call) ||
90
+ ActionController::Dispatcher.instance_methods.include?("call"))
91
+ end
92
+
93
+ def load_application
94
+ ENV['RAILS_ROOT'] = @root
95
+ ENV['RAILS_ENV'] = @env
96
+
97
+
98
+ require "#{@root}/config/environment"
99
+ require 'dispatcher'
100
+
101
+ setup_logger
102
+
103
+ if !@prefix.nil? && @prefix != "/"
104
+ if ActionController::Base.respond_to?('relative_url_root=') #for rails < 2.2
105
+ ActionController::Base.relative_url_root = @prefix
106
+ else
107
+ ActionController::AbstractRequest.relative_url_root = @prefix
108
+ end
109
+ end
110
+
111
+ end
112
+
113
+ def file_exist?(path)
114
+ full_path = ::File.join(@file_app.root, Utils.unescape(path))
115
+ ::File.file?(full_path) && ::File.readable_real?(full_path)
116
+ end
117
+
118
+ def call(env)
119
+ path = env['PATH_INFO'].chomp('/')
120
+ method = env['REQUEST_METHOD']
121
+ cached_path = (path.empty? ? 'index' : path) + ActionController::Base.page_cache_extension
122
+
123
+ if FILE_METHODS.include?(method)
124
+ if file_exist?(path) # Serve the file if it's there
125
+ return @file_app.call(env)
126
+ elsif file_exist?(cached_path) # Serve the page cache if it's there
127
+ env['PATH_INFO'] = cached_path
128
+ return @file_app.call(env)
129
+ end
130
+ end
131
+
132
+ # No static file, let Rails handle it
133
+ @rails_app.call(env)
134
+ end
135
+
136
+ protected
137
+
138
+ # For Rails pre Rack (2.3)
139
+ class CgiApp
140
+ require 'cgi'
141
+ def call(env)
142
+ request = Request.new(env)
143
+ response = Response.new
144
+ session_options = ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS
145
+ cgi = CGIWrapper.new(request, response)
146
+
147
+ Dispatcher.dispatch(cgi, session_options, response)
148
+
149
+ response.finish
150
+ end
151
+ end
152
+
153
+ class CGIWrapper < ::CGI
154
+ def initialize(request, response, *args)
155
+ @request = request
156
+ @response = response
157
+ @args = *args
158
+ @input = request.body
159
+
160
+ super *args
161
+ end
162
+
163
+ def header(options = "text/html")
164
+ if options.is_a?(String)
165
+ @response['Content-Type'] = options unless @response['Content-Type']
166
+ else
167
+ @response['Content-Length'] = options.delete('Content-Length').to_s if options['Content-Length']
168
+
169
+ @response['Content-Type'] = options.delete('type') || "text/html"
170
+ @response['Content-Type'] += "; charset=" + options.delete('charset') if options['charset']
171
+
172
+ @response['Content-Language'] = options.delete('language') if options['language']
173
+ @response['Expires'] = options.delete('expires') if options['expires']
174
+
175
+ @response.status = options.delete('Status') if options['Status']
176
+
177
+ # Convert 'cookie' header to 'Set-Cookie' headers.
178
+ # Because Set-Cookie header can appear more the once in the response body,
179
+ # we store it in a line break seperated string that will be translated to
180
+ # multiple Set-Cookie header by the handler.
181
+ if cookie = options.delete('cookie')
182
+ cookies = []
183
+
184
+ case cookie
185
+ when Array then cookie.each { |c| cookies << c.to_s }
186
+ when Hash then cookie.each { |_, c| cookies << c.to_s }
187
+ else cookies << cookie.to_s
188
+ end
189
+
190
+ @output_cookies.each { |c| cookies << c.to_s } if @output_cookies
191
+
192
+ @response['Set-Cookie'] = cookies unless cookies.empty?
193
+ end
194
+
195
+ options.each { |k,v| @response[k] = v }
196
+ end
197
+
198
+ ""
199
+ end
200
+
201
+ def params
202
+ @params ||= @request.params
203
+ end
204
+
205
+ def cookies
206
+ @request.cookies
207
+ end
208
+
209
+ def query_string
210
+ @request.query_string
211
+ end
212
+
213
+ # Used to wrap the normal args variable used inside CGI.
214
+ def args
215
+ @args
216
+ end
217
+
218
+ # Used to wrap the normal env_table variable used inside CGI.
219
+ def env_table
220
+ @request.env
221
+ end
222
+
223
+ # Used to wrap the normal stdinput variable used inside CGI.
224
+ def stdinput
225
+ @input
226
+ end
227
+
228
+ def stdoutput
229
+ STDERR.puts "stdoutput should not be used."
230
+ @response.body
231
+ end
232
+ end
233
+
234
+ private
235
+
236
+ def setup_logger
237
+ #Based on the server log level adjust rails log level as well
238
+
239
+ if $glassfish_log_level
240
+ begin
241
+ log_level = ActiveSupport::BufferedLogger.const_get($glassfish_log_level)
242
+ rescue
243
+ # We do nothing. This just means that user has not explicitly asked to change the log level
244
+ end
245
+ end
246
+
247
+ if defined?(::RAILS_DEFAULT_LOGGER)
248
+ class << ::RAILS_DEFAULT_LOGGER # Make these accessible to wire in the log device
249
+ public :instance_variable_get, :instance_variable_set
250
+ end
251
+ if defined?(ActiveSupport::BufferedLogger) # Rails 2.x
252
+ old_device = ::RAILS_DEFAULT_LOGGER.instance_variable_get "@log"
253
+ old_device.close rescue nil
254
+ ::RAILS_DEFAULT_LOGGER.instance_variable_set "@log", @rails_grizzly_helper.logdev
255
+ else # Rails 1.x
256
+ old_device = ::RAILS_DEFAULT_LOGGER.instance_variable_get "@logdev"
257
+ old_device.close rescue nil
258
+ ::RAILS_DEFAULT_LOGGER.instance_variable_set "@logdev", Logger::LogDevice.new(@rails_grizzly_helper.logdev)
259
+ end
260
+ ::RAILS_DEFAULT_LOGGER.level = log_level if log_level
261
+ $gf_ruby_log_level = ::RAILS_DEFAULT_LOGGER.level
262
+ end
263
+ end
264
+
265
+ end
266
+ end
267
+ end
268
+
@@ -0,0 +1,59 @@
1
+ #
2
+ # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
+ #
4
+ # Copyright 2007-2008 Sun Microsystems, Inc. All rights reserved.
5
+ #
6
+ # The contents of this file are subject to the terms of either the GNU
7
+ # General Public License Version 2 only ("GPL") or the Common Development
8
+ # and Distribution License("CDDL") (collectively, the "License"). You
9
+ # may not use this file except in compliance with the License. You can obtain
10
+ # a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
11
+ # or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
12
+ # language governing permissions and limitations under the License.
13
+ #
14
+ # When distributing the software, include this License Header Notice in each
15
+ # file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
16
+ # Sun designates this particular file as subject to the "Classpath" exception
17
+ # as provided by Sun in the GPL Version 2 section of the License file that
18
+ # accompanied this code. If applicable, add the following below the License
19
+ # Header, with the fields enclosed by brackets [] replaced by your own
20
+ # identifying information: "Portions Copyrighted [year]
21
+ # [name of copyright owner]"
22
+ #
23
+ # Contributor(s):
24
+ #
25
+ # If you wish your version of this file to be governed by only the CDDL or
26
+ # only the GPL Version 2, indicate your decision by adding "[Contributor]
27
+ # elects to include this software in this distribution under the [CDDL or GPL
28
+ # Version 2] license." If you don't indicate a single choice of license, a
29
+ # recipient has the option to distribute your version of this file under
30
+ # either the CDDL, the GPL Version 2 or to extend the choice of license to
31
+ # its licensees as provided above. However, if you add GPL Version 2 code
32
+ # and therefore, elected the GPL Version 2 license, then the option applies
33
+ # only if the new code is made subject to such option by the copyright
34
+ # holder.
35
+ #
36
+ require 'jruby/rack/grizzly_helper'
37
+ module Rack
38
+ module Handler
39
+ class Grizzly
40
+ def initialize(rack_app)
41
+ @rack_app = rack_app
42
+ end
43
+ def self.run (rack_app, *args)
44
+ @rack_app = rack_app
45
+ $grizzly_rack_app = rack_app
46
+ #Look at me, I'm a dummy method
47
+ end
48
+ def self.stop
49
+ #I'm another dummy method
50
+ end
51
+ def self.method_missing (m, *args)
52
+ puts "Someone tried to call #{m} on Rack::Handler::Grizzly!"
53
+ end
54
+ def call(env)
55
+ JRuby::Rack::Response.new(@rack_app.call(env))
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,164 @@
1
+ #--
2
+ #DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
+ #
4
+ #Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
5
+ #
6
+ #The contents of this file are subject to the terms of either the GNU
7
+ #General Public License Version 2 only ("GPL") or the Common Development
8
+ #and Distribution License("CDDL") (collectively, the "License"). You
9
+ #may not use this file except in compliance with the License. You can obtain
10
+ #a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
11
+ #or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
12
+ #language governing permissions and limitations under the License.
13
+ #
14
+ #When distributing the software, include this License Header Notice in each
15
+ #file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
16
+ #Sun designates this particular file as subject to the "Classpath" exception
17
+ #as provided by Sun in the GPL Version 2 section of the License file that
18
+ #accompanied this code. If applicable, add the following below the License
19
+ #Header, with the fields enclosed by brackets [] replaced by your own
20
+ #identifying information: "Portions Copyrighted [year]
21
+ #[name of copyright owner]"
22
+ #
23
+ #Contributor(s):
24
+ #
25
+ #If you wish your version of this file to be governed by only the CDDL or
26
+ #only the GPL Version 2, indicate your decision by adding "[Contributor]
27
+ #elects to include this software in this distribution under the [CDDL or GPL
28
+ #Version 2] license." If you don't indicate a single choice of license, a
29
+ #recipient has the option to distribute your version of this file under
30
+ #either the CDDL, the GPL Version 2 or to extend the choice of license to
31
+ #its licensees as provided above. However, if you add GPL Version 2 code
32
+ #and therefore, elected the GPL Version 2 license, then the option applies
33
+ #only if the new code is made subject to such option by the copyright
34
+ #holder.
35
+ #++
36
+
37
+ #
38
+ # Invokes and runs GlassFish
39
+ #
40
+
41
+ #Loads all the jars
42
+ $LOAD_PATH << "#{File.dirname(__FILE__)}/../lib/java"
43
+
44
+ require 'java'
45
+ require 'glassfish-gem.jar'
46
+ require 'akuma.jar'
47
+ require 'yaml'
48
+ require 'ftools'
49
+ require 'version'
50
+ require 'config'
51
+
52
+ module GlassFish
53
+ class Server
54
+ import "org.glassfish.scripting.gem.GlassFishMain"
55
+ import "org.glassfish.scripting.gem.Options"
56
+
57
+ java.lang.System.setProperty("addtional.load.path", "#{File.dirname(__FILE__)}/../lib")
58
+
59
+ attr_accessor :opts
60
+
61
+ def initialize(args, &block)
62
+
63
+ unless args[:log_level].nil?
64
+ if args[:log_level] > 4
65
+ puts "Arguments: "
66
+ args.each do |k, v|
67
+ puts "\t#{k}=>#{v}"
68
+ end
69
+ end
70
+
71
+ if args[:log_level] > 3
72
+ debug = true
73
+ end
74
+
75
+ end
76
+
77
+ java.lang.System.getProperties().put("jruby.runtime", JRuby.runtime) unless args[:daemon]
78
+
79
+ @opts = Options.new
80
+ @opts.runtimes = args[:runtimes]
81
+ @opts.runtimes_min = args[:runtimes_min]
82
+ @opts.runtimes_max = args[:runtimes_max]
83
+ @opts.environment = args[:environment]
84
+ @opts.port = args[:port]
85
+ @opts.address = args[:address]
86
+ @opts.contextRoot = args[:contextroot]
87
+ @opts.appDir = args[:app_dir]
88
+ @opts.daemon = args[:daemon]
89
+ @opts.pid = args[:pid]
90
+ @opts.log = args[:log]
91
+ @opts.log_console = args[:log_console]
92
+ @opts.domainDir = args[:domain_dir]
93
+ @opts.log_level = args[:log_level]
94
+ @opts.jvm_opts = args[:jvm_options]
95
+
96
+
97
+ unless args[:grizzly_config].nil?
98
+ args[:grizzly_config].each do |key, val|
99
+ case key
100
+ when "chunking-enabled"
101
+ @opts.grizzlyConfig.chunkingEnabled = val unless val.nil?
102
+ when "request-timeout"
103
+ @opts.grizzlyConfig.requestTimeout = val unless val.nil?
104
+ when "send-buffer-size"
105
+ @opts.grizzlyConfig.sendBufferSize = val unless val.nil?
106
+ when "max-keepalive-connextions"
107
+ @opts.grizzlyConfig.maxKeepaliveConnections = val unless val.nil?
108
+ when "keepalive-timeout"
109
+ @opts.grizzlyConfig.keepaliveTimeout = val unless val.nil?
110
+ when "thread-pool"
111
+ unless val.nil?
112
+ val.each do |k, v|
113
+ case k
114
+ when "idle-thread-timeout-seconds"
115
+ @opts.grizzlyConfig.threadPool.idleThreadTimeoutSeconds = v unless v.nil?
116
+ when "max-queue-size"
117
+ @opts.grizzlyConfig.threadPool.maxQueueSize = v unless v.nil?
118
+ when "max-thread-pool-size"
119
+ @opts.grizzlyConfig.threadPool.maxThreadPoolSize = v unless v.nil?
120
+ when "min-thread-pool-size"
121
+ @opts.grizzlyConfig.threadPool.minThreadPoolSize = v unless v.nil?
122
+ end
123
+ end
124
+ end
125
+ end
126
+ end
127
+ end
128
+
129
+ #Create the app using Rack builder
130
+ if(block)
131
+ app = Rack::Builder.new(&block).to_app
132
+ app = Rack::CommonLogger.new(@app) if debug
133
+ if app.nil?
134
+ app = block
135
+ end
136
+ @opts.app = app;
137
+
138
+ java.lang.System.getProperties().put("glassfish.rackupApp", app)
139
+ end
140
+ end
141
+
142
+ def self.start(args, &block)
143
+ #Validate the command line options
144
+ args = GlassFish::Config.init_opts.merge! args
145
+ Config.new.validate! args
146
+ new(args, &block).start!
147
+ end
148
+
149
+ def start
150
+ GlassFishMain.start @opts
151
+ end
152
+ alias :start! :start
153
+
154
+ def stop
155
+ GlassFishMain.start @opts
156
+ end
157
+
158
+ def name
159
+ "GlassFish v3 server"
160
+ end
161
+
162
+ alias :to_s :name
163
+ end
164
+ end