java/src/org/jruby/jubilee/impl/DefaultRackEnvironment.java in jubilee-0.4.0 vs java/src/org/jruby/jubilee/impl/DefaultRackEnvironment.java in jubilee-0.4.1
- old
+ new
@@ -1,13 +1,12 @@
package org.jruby.jubilee.impl;
-import org.jruby.RubyArray;
-import org.jruby.RubyString;
-import org.jruby.jubilee.RackEnvironment;
-import org.jruby.jubilee.Const;
import org.jruby.Ruby;
import org.jruby.RubyHash;
+import org.jruby.RubyString;
+import org.jruby.jubilee.Const;
+import org.jruby.jubilee.RackEnvironment;
import org.jruby.jubilee.RackInput;
import org.vertx.java.core.MultiMap;
import org.vertx.java.core.http.HttpServerRequest;
import java.util.Map;
@@ -17,83 +16,84 @@
* User: isaiah
* Date: 11/26/12
* Time: 11:40 AM
*/
public class DefaultRackEnvironment implements RackEnvironment {
- private RubyHash env;
- private MultiMap headers;
- private Ruby runtime;
+ private RubyHash env;
+ private MultiMap headers;
+ private Ruby runtime;
- public DefaultRackEnvironment(final Ruby runtime, final HttpServerRequest request, RackInput input, boolean isSSL) {
+ public DefaultRackEnvironment(final Ruby runtime, final HttpServerRequest request, RackInput input, boolean isSSL) {
- this.runtime = runtime;
- // DEFAULT
- env = RubyHash.newHash(runtime);
- env.put(Const.RACK_VERSION, Const.RackVersion(runtime));
- env.put(Const.RACK_ERRORS, new RubyIORackErrors(runtime));
- env.put(Const.RACK_MULTITHREAD, true);
- env.put(Const.RACK_MULTIPROCESS, false);
- env.put(Const.RACK_RUNONCE, true);
- if (isSSL)
- env.put(Const.URL_SCHEME, Const.HTTPS);
- else
- env.put(Const.URL_SCHEME, Const.HTTP);
- env.put(Const.SCRIPT_NAME, "");
+ this.runtime = runtime;
+ // DEFAULT
+ env = RubyHash.newHash(runtime);
+ env.put(Const.RACK_VERSION, Const.RackVersion(runtime));
+ env.put(Const.RACK_ERRORS, new RubyIORackErrors(runtime));
+ env.put(Const.RACK_MULTITHREAD, true);
+ env.put(Const.RACK_MULTIPROCESS, false);
+ env.put(Const.RACK_RUNONCE, true);
+ if (isSSL)
+ env.put(Const.URL_SCHEME, Const.HTTPS);
+ else
+ env.put(Const.URL_SCHEME, Const.HTTP);
+ env.put(Const.SCRIPT_NAME, "");
- env.put(Const.SERVER_PROTOCOL, Const.HTTP_11);
- env.put(Const.SERVER_SOFTWARE, Const.JUBILEE_VERSION);
- env.put(Const.GATEWAY_INTERFACE, Const.CGI_VER);
+ env.put(Const.SERVER_PROTOCOL, Const.HTTP_11);
+ env.put(Const.SERVER_SOFTWARE, Const.JUBILEE_VERSION);
+ env.put(Const.GATEWAY_INTERFACE, Const.CGI_VER);
- // Parse request headers
- headers = request.headers();
- String host;
- if ((host = headers.get(Const.Vertx.HOST)) != null) {
- int colon = host.indexOf(":");
- if (colon > 0) {
- env.put(Const.SERVER_NAME, host.substring(0, colon));
- env.put(Const.SERVER_PORT, host.substring(colon + 1));
- } else {
- env.put(Const.SERVER_NAME, host);
- env.put(Const.SERVER_PORT, Const.PORT_80);
- }
+ // Parse request headers
+ headers = request.headers();
+ String host;
+ if ((host = headers.get(Const.Vertx.HOST)) != null) {
+ int colon = host.indexOf(":");
+ if (colon > 0) {
+ env.put(Const.SERVER_NAME, host.substring(0, colon));
+ env.put(Const.SERVER_PORT, host.substring(colon + 1));
+ } else {
+ env.put(Const.SERVER_NAME, host);
+ env.put(Const.SERVER_PORT, Const.PORT_80);
+ }
- } else {
- env.put(Const.SERVER_NAME, Const.LOCALHOST);
- env.put(Const.SERVER_PORT, Const.PORT_80);
- }
+ } else {
+ env.put(Const.SERVER_NAME, Const.LOCALHOST);
+ env.put(Const.SERVER_PORT, Const.PORT_80);
+ }
- env.put(Const.RACK_INPUT, input);
- env.put(Const.REQUEST_METHOD, request.method());
- env.put(Const.REQUEST_PATH, request.path());
- env.put(Const.REQUEST_URI, request.uri());
- env.put(Const.QUERY_STRING, orEmpty(request.query()));
- env.put(Const.REMOTE_ADDR, request.remoteAddress().getHostString());
- env.put(Const.HTTP_HOST, host);
- env.put(Const.HTTP_COOKIE, orEmpty(headers.get(Const.Vertx.COOKIE)));
- env.put(Const.HTTP_USER_AGENT, headers.get(Const.Vertx.USER_AGENT));
- env.put(Const.HTTP_ACCEPT, headers.get(Const.Vertx.ACCEPT));
- env.put(Const.HTTP_ACCEPT_LANGUAGE, orEmpty(headers.get(Const.Vertx.ACCEPT_LANGUAGE)));
- env.put(Const.HTTP_ACCEPT_ENCODING, orEmpty(headers.get(Const.Vertx.ACCEPT_ENCODING)));
- env.put(Const.HTTP_CONNECTION, orEmpty(headers.get(Const.Vertx.CONNECTION)));
- env.put(Const.HTTP_CONTENT_TYPE, orEmpty(headers.get(Const.Vertx.CONTENT_TYPE)));
- String contentLength;
- if ((contentLength = headers.get(Const.Vertx.CONTENT_LENGTH)) != null)
- env.put(Const.HTTP_CONTENT_LENGTH, contentLength);
- env.put(Const.PATH_INFO, request.path());
+ env.put(Const.RACK_INPUT, input);
+ env.put(Const.REQUEST_METHOD, request.method());
+ env.put(Const.REQUEST_PATH, request.path());
+ env.put(Const.REQUEST_URI, request.uri());
+ env.put(Const.QUERY_STRING, orEmpty(request.query()));
+ env.put(Const.REMOTE_ADDR, request.remoteAddress().getHostString());
+ env.put(Const.HTTP_HOST, host);
+ env.put(Const.HTTP_COOKIE, orEmpty(headers.get(Const.Vertx.COOKIE)));
+ env.put(Const.HTTP_USER_AGENT, headers.get(Const.Vertx.USER_AGENT));
+ env.put(Const.HTTP_ACCEPT, headers.get(Const.Vertx.ACCEPT));
+ env.put(Const.HTTP_ACCEPT_LANGUAGE, orEmpty(headers.get(Const.Vertx.ACCEPT_LANGUAGE)));
+ env.put(Const.HTTP_ACCEPT_ENCODING, orEmpty(headers.get(Const.Vertx.ACCEPT_ENCODING)));
+ env.put(Const.HTTP_CONNECTION, orEmpty(headers.get(Const.Vertx.CONNECTION)));
+ env.put(Const.HTTP_CONTENT_TYPE, orEmpty(headers.get(Const.Vertx.CONTENT_TYPE)));
- // Additional headers
- for (Map.Entry<String, String> var : Const.ADDITIONAL_HEADERS.entrySet())
- setRackHeader(var.getKey(), var.getValue());
- }
+ String contentLength;
+ if ((contentLength = headers.get(Const.Vertx.CONTENT_LENGTH)) != null)
+ env.put(Const.HTTP_CONTENT_LENGTH, contentLength);
+ env.put(Const.PATH_INFO, request.path());
- public RubyHash getEnv() {
- return env;
- }
+ // Additional headers
+ for (Map.Entry<String, String> var : Const.ADDITIONAL_HEADERS.entrySet())
+ setRackHeader(var.getKey(), var.getValue());
+ }
- private RubyString orEmpty(String jString) {
- return jString == null ? RubyString.newEmptyString(runtime) : RubyString.newString(runtime, jString);
- }
+ public RubyHash getEnv() {
+ return env;
+ }
- private void setRackHeader(String vertxHeader, String rackHeader) {
- if (headers.contains(vertxHeader)) env.put(rackHeader, headers.get(vertxHeader));
- }
+ private RubyString orEmpty(String jString) {
+ return jString == null ? RubyString.newEmptyString(runtime) : RubyString.newString(runtime, jString);
+ }
+
+ private void setRackHeader(String vertxHeader, String rackHeader) {
+ if (headers.contains(vertxHeader)) env.put(rackHeader, headers.get(vertxHeader));
+ }
}