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 2013/06/17 17:34:20 UTC

svn commit: r1493813 - in /cxf/trunk/rt/rs/extensions/search/src: main/java/org/apache/cxf/jaxrs/ext/search/SearchContextImpl.java test/java/org/apache/cxf/jaxrs/ext/search/SearchContextImplTest.java

Author: sergeyb
Date: Mon Jun 17 15:34:20 2013
New Revision: 1493813

URL: http://svn.apache.org/r1493813
Log:
[CXF-5081] Support for custom FIQL query names

Modified:
    cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/SearchContextImpl.java
    cxf/trunk/rt/rs/extensions/search/src/test/java/org/apache/cxf/jaxrs/ext/search/SearchContextImplTest.java

Modified: cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/SearchContextImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/SearchContextImpl.java?rev=1493813&r1=1493812&r2=1493813&view=diff
==============================================================================
--- cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/SearchContextImpl.java (original)
+++ cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/SearchContextImpl.java Mon Jun 17 15:34:20 2013
@@ -41,6 +41,7 @@ public class SearchContextImpl implement
 
     public static final String SEARCH_QUERY = "_search";
     public static final String SHORT_SEARCH_QUERY = "_s";
+    public static final String CUSTOM_SEARCH_QUERY_PARAM_NAME = "search.query.parameter.name";
     private static final String USE_PLAIN_QUERY_PARAMETERS = "search.use.plain.queries";
     private static final String USE_ALL_QUERY_COMPONENT = "search.use.all.query.component";
     private static final Logger LOG = LogUtils.getL7dLogger(SearchContextImpl.class);
@@ -109,6 +110,10 @@ public class SearchContextImpl implement
             }
             MultivaluedMap<String, String> params = 
                 JAXRSUtils.getStructuredParams(queryStr, "&", true, false);
+            String customQueryParamName = (String)message.getContextualProperty(CUSTOM_SEARCH_QUERY_PARAM_NAME);
+            if (customQueryParamName != null) {
+                return params.getFirst(customQueryParamName);
+            }
             if (queryStr.contains(SHORT_SEARCH_QUERY) || queryStr.contains(SEARCH_QUERY)) {
                 if (params.containsKey(SHORT_SEARCH_QUERY)) {
                     return params.getFirst(SHORT_SEARCH_QUERY);

Modified: cxf/trunk/rt/rs/extensions/search/src/test/java/org/apache/cxf/jaxrs/ext/search/SearchContextImplTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/extensions/search/src/test/java/org/apache/cxf/jaxrs/ext/search/SearchContextImplTest.java?rev=1493813&r1=1493812&r2=1493813&view=diff
==============================================================================
--- cxf/trunk/rt/rs/extensions/search/src/test/java/org/apache/cxf/jaxrs/ext/search/SearchContextImplTest.java (original)
+++ cxf/trunk/rt/rs/extensions/search/src/test/java/org/apache/cxf/jaxrs/ext/search/SearchContextImplTest.java Mon Jun 17 15:34:20 2013
@@ -83,6 +83,14 @@ public class SearchContextImplTest exten
     }
     
     @Test
+    public void testFiqlSearchConditionCustomQueryName() {
+        Message m = new MessageImpl();
+        m.put(SearchContextImpl.CUSTOM_SEARCH_QUERY_PARAM_NAME, "thequery");
+        doTestFiqlSearchCondition(m,
+            "thequery" + "=" + "name==CXF%20Rocks;id=gt=123");
+    }
+    
+    @Test
     public void testFiqlSearchBean() {
         doTestFiqlSearchBean(
             SearchContextImpl.SEARCH_QUERY + "=" + "name==CXF%20Rocks;id=gt=123");
@@ -110,7 +118,10 @@ public class SearchContextImplTest exten
     }
     
     private void doTestFiqlSearchCondition(String queryString) {
-        Message m = new MessageImpl();
+        doTestFiqlSearchCondition(new MessageImpl(), queryString);
+    }
+    
+    private void doTestFiqlSearchCondition(Message m, String queryString) {
         m.put(Message.QUERY_STRING, queryString);
         SearchContext context = new SearchContextImpl(m);
         SearchCondition<Book> sc = context.getCondition(Book.class);