I'm very confused by this one. I can use the wrap! macro on my routes and it seems to work correctly if I call them manually. But, when used with run-jetty, it has no effect. There's a repl session below that demonstrates my problem. Note that calling my-routes directly yields keyword params (:name) as expected. When accessed through Jetty with curl, :params is unaffected. I have the same problem if I use (wrap-keyword-params) directly as well.
Hopefully I just don't understand how to use wrap! or run-jetty correctly.
(compojure.core, ring.adapter.jetty, and ring.middleware.keyword-params are all used in the current ns)
rhymetime.web=> (defroutes my-routes (GET "/" request (str request)))
#'rhymetime.web/my-routes
rhymetime.web=> my-routes
#<cookies$wrap_cookies$fn__614 ring.middleware.cookies$wrap_cookies$fn__614@167acf2>
rhymetime.web=> (wrap! my-routes (:keyword-params))
#<keyword_params$wrap_keyword_params$fn__995 ring.middleware.keyword_params$wrap_keyword_params$fn__995@6b6ac8>
rhymetime.web=> my-routes
#<keyword_params$wrap_keyword_params$fn__995 ring.middleware.keyword_params$wrap_keyword_params$fn__995@6b6ac8>
rhymetime.web=> (my-routes { :request-method :get :params {"name" "value"}})
{:status 200,
:headers {"Content-Type" "text/html"},
:body "{:route-params {},
:query-params {},
:form-params {},
:cookies {},
:request-method :get,
:params {:name \"value\"}}"}
rhymetime.web=> (run-jetty my-routes {:port 8080})
2010-11-12 20:15:14.626::INFO: Logging to STDERR via org.mortbay.log.StdErrLog
2010-11-12 20:15:14.632::INFO: jetty-6.1.14
2010-11-12 20:15:14.751::INFO: Started [email protected]:8080
$ curl http://localhost:8080/?name=value
{:remote-addr "0:0:0:0:0:0:0:1",
:scheme :http,
:query-params {"name" "value"},
:form-params {},
:request-method :get,
:query-string "name=value",
:route-params {},
:content-type nil,
:cookies {},
:uri "/",
:server-name "localhost",
:params {"name" "value"},
:headers {"accept" "*/*",
"host" "localhost:8080",
"user-agent" "curl/7.18.2 (i486-pc-linux-gnu) libcurl/7.18.2 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.10"},
:content-length nil,
:server-port 8080,
:character-encoding nil,
:body #<Input org.mortbay.jetty.HttpParser$Input@16f4ce0>}