You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2011/11/11 14:34:10 UTC
svn commit: r1200876 -
/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/RequestPreprocessor.java
Author: sergeyb
Date: Fri Nov 11 13:34:09 2011
New Revision: 1200876
URL: http://svn.apache.org/viewvc?rev=1200876&view=rev
Log:
[CXF-3902] Adding a query hint when a .wadl suffix is added
Modified:
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/RequestPreprocessor.java
Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/RequestPreprocessor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/RequestPreprocessor.java?rev=1200876&r1=1200875&r2=1200876&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/RequestPreprocessor.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/RequestPreprocessor.java Fri Nov 11 13:34:09 2011
@@ -29,6 +29,7 @@ import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
+import org.apache.cxf.common.util.StringUtils;
import org.apache.cxf.jaxrs.ext.RequestHandler;
import org.apache.cxf.jaxrs.ext.codegen.CodeGeneratorProvider;
import org.apache.cxf.jaxrs.model.ProviderInfo;
@@ -105,9 +106,21 @@ public class RequestPreprocessor {
private void handleExtensionMappings(Message m, UriInfo uriInfo) {
String path = uriInfo.getPath(false);
for (Map.Entry<?, ?> entry : extensionMappings.entrySet()) {
- if (path.endsWith("." + entry.getKey().toString())) {
+ String key = entry.getKey().toString();
+ if (path.endsWith("." + key)) {
updateAcceptTypeHeader(m, entry.getValue().toString());
- updatePath(m, path, entry.getKey().toString());
+ updatePath(m, path, key);
+ if ("wadl".equals(key)) {
+ // the path has been updated and Accept was not necessarily set to
+ // WADL type (xml or json or html - other options)
+ String query = (String)m.get(Message.QUERY_STRING);
+ if (StringUtils.isEmpty(query)) {
+ query = WadlGenerator.WADL_QUERY;
+ } else if (!query.contains(WadlGenerator.WADL_QUERY)) {
+ query += "&" + WadlGenerator.WADL_QUERY;
+ }
+ m.put(Message.QUERY_STRING, query);
+ }
break;
}
}